Skip to content

Commit 3ffcd7b

Browse files
pgreenwakuba-moo
authored andcommitted
ice: fix Get Tx Topology AQ command error on E830
The Get Tx Topology AQ command (opcode 0x0418) has different read flag requirements depending on the hardware/firmware. For E810, E822, and E823 firmware the read flag must be set, and for newer hardware (E825 and E830) it must not be set. This results in failure to configure Tx topology and the following warning message during probe: DDP package does not support Tx scheduling layers switching feature - please update to the latest DDP package and try again The current implementation only handles E825-C but not E830. It is confusing as we first check ice_is_e825c() and then set the flag in the set case. Finally, we check ice_is_e825c() again and set the flag for all other hardware in both the set and get case. Instead, notice that we always need the read flag for set, but only need the read flag for get on E810, E822, and E823 firmware. Fix the logic to check the MAC type and set the read flag in get only on the older devices which require it. Fixes: ba1124f ("ice: Add E830 device IDs, MAC type and registers") Signed-off-by: Paul Greenwalt <[email protected]> Signed-off-by: Jacob Keller <[email protected]> Reviewed-by: Michal Swiatkowski <[email protected]> Tested-by: Krishneil Singh <[email protected]> Signed-off-by: Tony Nguyen <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent bd808ca commit 3ffcd7b

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

drivers/net/ethernet/intel/ice/ice_ddp.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2345,15 +2345,15 @@ ice_get_set_tx_topo(struct ice_hw *hw, u8 *buf, u16 buf_size,
23452345
cmd->set_flags |= ICE_AQC_TX_TOPO_FLAGS_SRC_RAM |
23462346
ICE_AQC_TX_TOPO_FLAGS_LOAD_NEW;
23472347

2348-
if (hw->mac_type == ICE_MAC_GENERIC_3K_E825)
2349-
desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
2348+
desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
23502349
} else {
23512350
ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_get_tx_topo);
23522351
cmd->get_flags = ICE_AQC_TX_TOPO_GET_RAM;
2353-
}
23542352

2355-
if (hw->mac_type != ICE_MAC_GENERIC_3K_E825)
2356-
desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
2353+
if (hw->mac_type == ICE_MAC_E810 ||
2354+
hw->mac_type == ICE_MAC_GENERIC)
2355+
desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
2356+
}
23572357

23582358
status = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd);
23592359
if (status)

0 commit comments

Comments
 (0)