[BNX2]: Fix 5706 serdes link down bug.
authorMichael Chan <mchan@broadcom.com>
Wed, 30 Jan 2008 05:33:03 +0000 (21:33 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Feb 2008 03:27:12 +0000 (19:27 -0800)
1. Correct the MII expansion serdes control register definition.
2. Check an additional RUDI_INVALID bit when determining 5706S link.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2.c
drivers/net/bnx2.h

index 34aebc6e75896011fae724cf0d44b8b19868c31c..353c73fa34334e264a8822c8e50b8833f659dd21 100644 (file)
@@ -5315,7 +5315,7 @@ bnx2_5706_serdes_has_link(struct bnx2 *bp)
        bnx2_read_phy(bp, MII_BNX2_MISC_SHADOW, &an_dbg);
        bnx2_read_phy(bp, MII_BNX2_MISC_SHADOW, &an_dbg);
 
-       if (an_dbg & MISC_SHDW_AN_DBG_NOSYNC)
+       if (an_dbg & (MISC_SHDW_AN_DBG_NOSYNC | MISC_SHDW_AN_DBG_RUDI_INVALID))
                return 0;
 
        bnx2_write_phy(bp, MII_BNX2_DSP_ADDRESS, MII_EXPAND_REG1);
index d8e034700c363420e1aef24dd27a01bf56358da8..059e1159647f94f087cb5802d4b594e5f8879ee1 100644 (file)
@@ -6346,11 +6346,12 @@ struct l2_fhdr {
 #define MII_BNX2_DSP_EXPAND_REG                         0x0f00
 #define MII_EXPAND_REG1                                  (MII_BNX2_DSP_EXPAND_REG | 1)
 #define MII_EXPAND_REG1_RUDI_C                    0x20
-#define MII_EXPAND_SERDES_CTL                    (MII_BNX2_DSP_EXPAND_REG | 2)
+#define MII_EXPAND_SERDES_CTL                    (MII_BNX2_DSP_EXPAND_REG | 3)
 
 #define MII_BNX2_MISC_SHADOW                   0x1c
 #define MISC_SHDW_AN_DBG                        0x6800
 #define MISC_SHDW_AN_DBG_NOSYNC                          0x0002
+#define MISC_SHDW_AN_DBG_RUDI_INVALID            0x0100
 #define MISC_SHDW_MODE_CTL                      0x7c00
 #define MISC_SHDW_MODE_CTL_SIG_DET               0x0010