Re: TG3 doesn't work in kernel 2.4.27 (David S. Miller)

From: David S. Miller
Date: Mon Aug 30 2004 - 18:15:02 EST



Michael Chan at Broadcom spotted the bug.

Things are totally broken if the switch/hub does not support
autonegotiation. Checking for the MAC_STATUS_SIGNAL_DET bit
in the tg3 polling timer fixes the problem.

This is probably why it worked for you and doesn't with the
IBM blades as blades are more likely to be connected to
non-autoneg'ing devices.

===== drivers/net/tg3.c 1.199 vs edited =====
--- 1.199/drivers/net/tg3.c 2004-08-18 19:52:35 -07:00
+++ edited/drivers/net/tg3.c 2004-08-30 15:08:07 -07:00
@@ -5602,7 +5602,8 @@
need_setup = 1;
}
if (! netif_carrier_ok(tp->dev) &&
- (mac_stat & MAC_STATUS_PCS_SYNCED)) {
+ (mac_stat & (MAC_STATUS_PCS_SYNCED |
+ MAC_STATUS_SIGNAL_DET))) {
need_setup = 1;
}
if (need_setup) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/