Skip to contentSkip to conversation

tg3: Fix 5906 link problems

PATCH In review Matt Carlson 2 participants 3 messages Feb 26, 2009 – Mar 4, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/14 tg3: Fix 5906 link problems

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.

---
 drivers/net/tg3.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
drivers/net/tg3.c +2 -1
index 67630fb..c7bbbb1 100644
@@ -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 |
Signature · 1 line
1.6.0.6
#1 lore raw

Hi David. Can we also apply this patch into net-2.6? It fixes a regression that was introduced during the 2.6.29 development cycle.

Quoted 37 lines · Matt Carlson

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.

---
 drivers/net/tg3.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
drivers/net/tg3.c +2 -1
index 67630fb..c7bbbb1 100644
@@ -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 |
Signature · 7 lines
1.6.0.6


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
maintainer
#2 lore raw

From: "Matt Carlson" <[email protected]>
Date: Tue, 3 Mar 2009 12:17:39 -0800

Quoted 2 lines

Hi David. Can we also apply this patch into net-2.6? It fixes a regression that was introduced during the 2.6.29 development cycle.

Sure, I'll queue it up to net-2.6