From: Paul Greenwalt <paul.greenw...@intel.com>

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.

Signed-off-by: Paul Greenwalt <paul.greenw...@intel.com>
Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com>
---
 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)

---
base-commit: f5da7c45188eea71394bf445655cae2df88a7788
change-id: 20250218-jk-e830-ddp-loading-fix-9efdbdfc270a

Best regards,
-- 
Jacob Keller <jacob.e.kel...@intel.com>

Reply via email to