[PATCH 1/4] common/sfc_efx/base: fix autoneg detection with netport MCDI
Ivan Malov
ivan.malov at arknetworks.am
Fri Sep 5 16:45:11 CEST 2025
Currently, the code consults both local AN support status, which is stable,
and the dynamic AN status on the link partner, which is flaky. Exclude the
latter, as the client should have the opportunity to re-initiate AN afresh.
Fixes: 2a5cf77e6de8 ("common/sfc_efx/base: provide PHY link get method on Medford4")
Cc: stable at dpdk.org
Signed-off-by: Ivan Malov <ivan.malov at arknetworks.am>
Reviewed-by: Andy Moreton <andy.moreton at amd.com>
---
drivers/common/sfc_efx/base/efx_np.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/common/sfc_efx/base/efx_np.c b/drivers/common/sfc_efx/base/efx_np.c
index a19c986691..599daa7a60 100644
--- a/drivers/common/sfc_efx/base/efx_np.c
+++ b/drivers/common/sfc_efx/base/efx_np.c
@@ -397,8 +397,7 @@ efx_np_link_state(
v3_flags = MCDI_OUT_DWORD(req, LINK_STATE_OUT_V3_FLAGS);
memset(lsp, 0, sizeof (*lsp));
- if (status_flags & (1U << MC_CMD_LINK_STATUS_FLAGS_AN_ABLE) &&
- MCDI_OUT_DWORD(req, LINK_STATE_OUT_V2_LOCAL_AN_SUPPORT) !=
+ if (MCDI_OUT_DWORD(req, LINK_STATE_OUT_V2_LOCAL_AN_SUPPORT) !=
MC_CMD_AN_NONE)
lsp->enls_an_supported = B_TRUE;
@@ -437,7 +436,7 @@ efx_np_link_state(
MCDI_OUT2(req, const uint8_t, LINK_STATE_OUT_ADVERTISED_ABILITIES),
&lsp->enls_adv_cap_mask);
- if (lsp->enls_an_supported != B_FALSE)
+ if (status_flags & (1U << MC_CMD_LINK_STATUS_FLAGS_AN_ABLE))
lsp->enls_lp_cap_mask |= 1U << EFX_PHY_CAP_AN;
efx_np_cap_hw_data_to_sw_mask(
--
2.47.2
More information about the dev
mailing list