From: Dan Nowlin <dan.now...@intel.com> In E830, regarding the Get Tx Topology AQ command, there is a change in the way that the RD bit must be set. For E830, the RD bit must be cleared. Setting the RD bit for the E830 device was causing the Get Tx Topology command to fail.
Fix it to clear RD bit for E830 device. Signed-off-by: Dan Nowlin <dan.now...@intel.com> Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> --- drivers/net/ice/base/ice_ddp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/base/ice_ddp.c b/drivers/net/ice/base/ice_ddp.c index d5d81db949..f82e5a387f 100644 --- a/drivers/net/ice/base/ice_ddp.c +++ b/drivers/net/ice/base/ice_ddp.c @@ -2298,11 +2298,16 @@ ice_get_set_tx_topo(struct ice_hw *hw, u8 *buf, u16 buf_size, if (buf) cmd->set_flags |= ICE_AQC_TX_TOPO_FLAGS_SRC_RAM | ICE_AQC_TX_TOPO_FLAGS_LOAD_NEW; + + 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_e830(hw)) + desc.flags |= CPU_TO_LE16(ICE_AQ_FLAG_RD); } - desc.flags |= CPU_TO_LE16(ICE_AQ_FLAG_RD); + status = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd); if (status) return status; -- 2.43.0