]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnx2x: Fix self test of BCM57800
authorYaniv Rosner <yanivr@broadcom.com>
Mon, 28 Nov 2011 00:49:51 +0000 (00:49 +0000)
committerJoe Jin <joe.jin@oracle.com>
Wed, 16 May 2012 14:41:09 +0000 (22:41 +0800)
Fix the MAC test of the 1G port of the BCM57800 to use the UMAC instead of the XMAC.

(cherry picked from commit 32911333e03210898709d4df40ba197aed427219)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/bnx2x/bnx2x_ethtool.c

index 3c9695c7c9a50d88be59ccc2a1824c7e6d7b05ca..e3d512f3a2911575b71d3d712aca0b26a24d2cf1 100644 (file)
@@ -1720,8 +1720,18 @@ static int bnx2x_run_loopback(struct bnx2x *bp, int loopback_mode)
                        return -EINVAL;
                break;
        case BNX2X_MAC_LOOPBACK:
-               bp->link_params.loopback_mode = CHIP_IS_E3(bp) ?
-                                               LOOPBACK_XMAC : LOOPBACK_BMAC;
+               if (CHIP_IS_E3(bp)) {
+                       int cfg_idx = bnx2x_get_link_cfg_idx(bp);
+                       if (bp->port.supported[cfg_idx] &
+                           (SUPPORTED_10000baseT_Full |
+                            SUPPORTED_20000baseMLD2_Full |
+                            SUPPORTED_20000baseKR2_Full))
+                               bp->link_params.loopback_mode = LOOPBACK_XMAC;
+                       else
+                               bp->link_params.loopback_mode = LOOPBACK_UMAC;
+               } else
+                       bp->link_params.loopback_mode = LOOPBACK_BMAC;
+
                bnx2x_phy_init(&bp->link_params, &bp->link_vars);
                break;
        default: