On Tue, Feb 18, 2025 at 04:46:34PM -0800, Jacob Keller wrote:
> From: Paul Greenwalt <[email protected]>
>
> With E830 Get Tx Topology AQ command (opcode 0x0418) returns an error when
> setting the AQ command read flag, and since the get command is a direct
> command there is no need to set the read flag.
>
> Fix this by only setting read flag on set command.
Why it isn't true for other hw? I mean, why not:
if (set)
RD_FLAG
else
NOT_RD_FLAG
Other hw needs RD flag in case of get too?
>
Don't you need fixes tag?
> Signed-off-by: Paul Greenwalt <[email protected]>
> Signed-off-by: Jacob Keller <[email protected]>
> ---
> drivers/net/ethernet/intel/ice/ice_ddp.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice_ddp.c
> b/drivers/net/ethernet/intel/ice/ice_ddp.c
> index
> 03988be03729b76e96188864896527060c8c4d5b..49bd49ab3ccf36c990144894e887341459377a2d
> 100644
> --- a/drivers/net/ethernet/intel/ice/ice_ddp.c
> +++ b/drivers/net/ethernet/intel/ice/ice_ddp.c
> @@ -2345,15 +2345,15 @@ ice_get_set_tx_topo(struct ice_hw *hw, u8 *buf, u16
> buf_size,
> cmd->set_flags |= ICE_AQC_TX_TOPO_FLAGS_SRC_RAM |
> ICE_AQC_TX_TOPO_FLAGS_LOAD_NEW;
>
> - if (ice_is_e825c(hw))
> - desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
> + desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
> } else {
> ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_get_tx_topo);
> cmd->get_flags = ICE_AQC_TX_TOPO_GET_RAM;
> - }
>
> - if (!ice_is_e825c(hw))
> - desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
> + if (hw->mac_type != ICE_MAC_GENERIC_3K_E825 &&
> + hw->mac_type != ICE_MAC_E830)
> + desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
> + }
>
> status = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd);
> if (status)
>
In general looks fine, only one question.
Thanks,
Michal
> ---
> base-commit: f5da7c45188eea71394bf445655cae2df88a7788
> change-id: 20250218-jk-e830-ddp-loading-fix-9efdbdfc270a
>
> Best regards,
> --
> Jacob Keller <[email protected]>