tg3: Fix 5906 link problems
authorMatt Carlson <mcarlson@broadcom.com>
Wed, 25 Feb 2009 14:21:20 +0000 (14:21 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Feb 2009 07:16:29 +0000 (23:16 -0800)
Commit 6833c043f9fc03696fde623914c4a0277df2a0bc introduced the phy
auto-powerdown capability.  While the APD feature only works for 5761
and 5784 asic revisions, the (harmless portion of the) code was applied
to all 5705 and newer devices.  However, the 5906 phy departs from the
usual design.  This commit was interfering with the 5906's ability to
negotiate link against some switches.  This patch corrects the problem.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c

index 67630fb8272ec0dc4a4e5f5d98491d376ef818fe..c7bbbb19f0006f22385f66f2d162dc7d737ad50f 100644 (file)
@@ -1473,7 +1473,8 @@ static void tg3_phy_toggle_apd(struct tg3 *tp, bool enable)
 {
        u32 reg;
 
-       if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS))
+       if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS) ||
+           GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906)
                return;
 
        reg = MII_TG3_MISC_SHDW_WREN |