bnxt_en: Add support for fw managed link down feature.
authorMichael Chan <michael.chan@broadcom.com>
Sun, 25 Apr 2021 17:45:20 +0000 (13:45 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 26 Apr 2021 01:37:38 +0000 (18:37 -0700)
In the current code, the driver will not shutdown the link during
IFDOWN if there are still VFs sharing the port.  Newer firmware will
manage the link down decision when the port is shared by VFs, so
we can just call firmware to shutdown the port unconditionally and
let firmware make the final decision.

Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h

index f08427b7dbe7587d1fd00abab05fbdc7e6b699f0..dcf1598afac23fe1ebbd5c1acac7e4716c3eb9a7 100644 (file)
@@ -9495,7 +9495,8 @@ static int bnxt_hwrm_shutdown_link(struct bnxt *bp)
        if (!BNXT_SINGLE_PF(bp))
                return 0;
 
-       if (pci_num_vf(bp->pdev))
+       if (pci_num_vf(bp->pdev) &&
+           !(bp->phy_flags & BNXT_PHY_FL_FW_MANAGED_LKDN))
                return 0;
 
        bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_PORT_PHY_CFG, -1, -1);
index 6c4fb78c59fe19bcc7fde1799a5b7312eaf76394..5835d8ca8c221d9d13dfd306e8585ff51327880c 100644 (file)
@@ -2014,6 +2014,7 @@ struct bnxt {
 #define BNXT_PHY_FL_SHARED_PORT_CFG    PORT_PHY_QCAPS_RESP_FLAGS_SHARED_PHY_CFG_SUPPORTED
 #define BNXT_PHY_FL_PORT_STATS_NO_RESET        PORT_PHY_QCAPS_RESP_FLAGS_CUMULATIVE_COUNTERS_ON_RESET
 #define BNXT_PHY_FL_NO_PHY_LPBK                PORT_PHY_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED
+#define BNXT_PHY_FL_FW_MANAGED_LKDN    PORT_PHY_QCAPS_RESP_FLAGS_FW_MANAGED_LINK_DOWN
 
        u8                      num_tests;
        struct bnxt_test_info   *test_info;