bnxt_en: Report Active FEC encoding during link up.
authorMichael Chan <michael.chan@broadcom.com>
Sun, 27 Sep 2020 17:42:18 +0000 (13:42 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sun, 27 Sep 2020 20:35:46 +0000 (13:35 -0700)
The current code is reporting the FEC configured settings during link up.
Change it to report the more useful active FEC encoding that may be
negotiated or auto detected.

Reviewed-by: Vasundhara Volam <vasundhara-v.volam@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

index ab3b36deaf6649e49c91e01d5c7de51e3aa9fad7..834f64f5f4d670f44c0e2b770be0d884dcb2e8dd 100644 (file)
@@ -8737,6 +8737,30 @@ void bnxt_tx_enable(struct bnxt *bp)
                netif_carrier_on(bp->dev);
 }
 
+static char *bnxt_report_fec(struct bnxt_link_info *link_info)
+{
+       u8 active_fec = link_info->active_fec_sig_mode &
+                       PORT_PHY_QCFG_RESP_ACTIVE_FEC_MASK;
+
+       switch (active_fec) {
+       default:
+       case PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_NONE_ACTIVE:
+               return "None";
+       case PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE74_ACTIVE:
+               return "Clause 74 BaseR";
+       case PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE91_ACTIVE:
+               return "Clause 91 RS(528,514)";
+       case PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_1XN_ACTIVE:
+               return "Clause 91 RS544_1XN";
+       case PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_IEEE_ACTIVE:
+               return "Clause 91 RS(544,514)";
+       case PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_1XN_ACTIVE:
+               return "Clause 91 RS272_1XN";
+       case PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE:
+               return "Clause 91 RS(272,257)";
+       }
+}
+
 static void bnxt_report_link(struct bnxt *bp)
 {
        if (bp->link_info.link_up) {
@@ -8767,10 +8791,9 @@ static void bnxt_report_link(struct bnxt *bp)
                                                         "not active");
                fec = bp->link_info.fec_cfg;
                if (!(fec & PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED))
-                       netdev_info(bp->dev, "FEC autoneg %s encodings: %s\n",
+                       netdev_info(bp->dev, "FEC autoneg %s encoding: %s\n",
                                    (fec & BNXT_FEC_AUTONEG) ? "on" : "off",
-                                   (fec & BNXT_FEC_ENC_BASE_R) ? "BaseR" :
-                                    (fec & BNXT_FEC_ENC_RS) ? "RS" : "None");
+                                   bnxt_report_fec(&bp->link_info));
        } else {
                netif_carrier_off(bp->dev);
                netdev_err(bp->dev, "NIC Link is Down\n");