mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 18:13:26 -04:00
bnxt_en: Skip PHY loopback ethtool selftest if unsupported by FW
Skip PHY loopback selftest if firmware advertises that it is unsupported in the HWRM_PORT_PHY_QCAPS call. Only show PHY loopback test result to be 0 if the test has run and passes. Do the same for external loopback to be consistent. Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com> Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Link: https://patch.msgid.link/20241217182620.2454075-4-michael.chan@broadcom.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
fac5472fc8
commit
36d1e70a90
@@ -4914,20 +4914,26 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest,
|
||||
buf[BNXT_MACLPBK_TEST_IDX] = 0;
|
||||
|
||||
bnxt_hwrm_mac_loopback(bp, false);
|
||||
buf[BNXT_PHYLPBK_TEST_IDX] = 1;
|
||||
if (bp->phy_flags & BNXT_PHY_FL_NO_PHY_LPBK)
|
||||
goto skip_phy_loopback;
|
||||
|
||||
bnxt_hwrm_phy_loopback(bp, true, false);
|
||||
msleep(1000);
|
||||
if (bnxt_run_loopback(bp)) {
|
||||
buf[BNXT_PHYLPBK_TEST_IDX] = 1;
|
||||
if (bnxt_run_loopback(bp))
|
||||
etest->flags |= ETH_TEST_FL_FAILED;
|
||||
}
|
||||
else
|
||||
buf[BNXT_PHYLPBK_TEST_IDX] = 0;
|
||||
skip_phy_loopback:
|
||||
buf[BNXT_EXTLPBK_TEST_IDX] = 1;
|
||||
if (do_ext_lpbk) {
|
||||
etest->flags |= ETH_TEST_FL_EXTERNAL_LB_DONE;
|
||||
bnxt_hwrm_phy_loopback(bp, true, true);
|
||||
msleep(1000);
|
||||
if (bnxt_run_loopback(bp)) {
|
||||
buf[BNXT_EXTLPBK_TEST_IDX] = 1;
|
||||
if (bnxt_run_loopback(bp))
|
||||
etest->flags |= ETH_TEST_FL_FAILED;
|
||||
}
|
||||
else
|
||||
buf[BNXT_EXTLPBK_TEST_IDX] = 0;
|
||||
}
|
||||
bnxt_hwrm_phy_loopback(bp, false, false);
|
||||
bnxt_half_close_nic(bp);
|
||||
|
||||
Reference in New Issue
Block a user