public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Yellowfin bug fix for Symbios cards
@ 2001-10-19  3:04 Val Henson
  2001-10-19  3:37 ` Jeff Garzik
  0 siblings, 1 reply; 5+ messages in thread
From: Val Henson @ 2001-10-19  3:04 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel

Short version: My last patch to the yellowfin driver forced
full-duplex on for Symbios 10/100 cards, causing severe packet loss on
hubs and some switches.

Long version: Reading the MAC address from the EEPROM didn't work on
the Symbios card, so I turned on the IsGigabit flag to read it
correctly.  This also forces full-duplex on, which is wrong.  So I
added a flag controlling only the MAC address reading behavior and
turned off the IsGigabit flag for Symbios cards.

Patch (against latest 2.4) is at the end of this mail.

Thanks to Tim Moloney for reporting this bug.

-VAL

diff -Nru a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c
--- a/drivers/net/yellowfin.c	Thu Oct 18 20:59:43 2001
+++ b/drivers/net/yellowfin.c	Thu Oct 18 20:59:43 2001
@@ -38,10 +38,13 @@
 	* Fix three endian-ness bugs
 	* Support dual function SYM53C885E ethernet chip
 	
+	LK1.1.5 (val@nmt.edu):
+	* Fix forced full-duplex bug I introduced
+	
 */
 
 #define DRV_NAME	"yellowfin"
-#define DRV_VERSION	"1.05+LK1.1.3"
+#define DRV_VERSION	"1.05+LK1.1.5"
 #define DRV_RELDATE	"May 10, 2001"
 
 #define PFX DRV_NAME ": "
@@ -256,7 +259,7 @@
 };
 enum capability_flags {
 	HasMII=1, FullTxStatus=2, IsGigabit=4, HasMulticastBug=8, FullRxStatus=16,
-	HasMACAddrBug=32,			/* Only on early revs.  */
+	HasMACAddrBug=32, DontUseEeprom=64, /* Only on early revs.  */
 };
 /* The PCI I/O space extent. */
 #define YELLOWFIN_SIZE 0x100
@@ -282,7 +285,7 @@
 	 PCI_IOTYPE, YELLOWFIN_SIZE,
 	 FullTxStatus | IsGigabit | HasMulticastBug | HasMACAddrBug},
 	{"Symbios SYM83C885", { 0x07011000, 0xffffffff},
-	 PCI_IOTYPE, YELLOWFIN_SIZE, HasMII | IsGigabit | FullTxStatus },
+	 PCI_IOTYPE, YELLOWFIN_SIZE, HasMII | DontUseEeprom },
 	{0,},
 };
 
@@ -453,7 +456,7 @@
 #endif
 	irq = pdev->irq;
 
-	if (drv_flags & IsGigabit)
+	if (drv_flags & DontUseEeprom)
 		for (i = 0; i < 6; i++)
 			dev->dev_addr[i] = inb(ioaddr + StnAddr + i);
 	else {

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-10-19 18:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-19  3:04 [PATCH] Yellowfin bug fix for Symbios cards Val Henson
2001-10-19  3:37 ` Jeff Garzik
2001-10-19  3:54   ` Val Henson
2001-10-19  4:26     ` Jeff Garzik
2001-10-19 18:06       ` Val Henson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox