summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2002-10-31 19:39:19 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2002-10-31 19:39:19 -0800
commit25409de19f5e89ae461ef0102aa53eff3f182592 (patch)
treec3dc394d10d28fe3d140cc879bff6a363342d2da
parent57075741fd14413de99ee67ca7deb913d4d241f5 (diff)
[PATCH] use longer delays on 3c509
Som boards dont seem to be in spec
-rw-r--r--drivers/net/3c509.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index db8b01d83e88..9c87f349b124 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -51,11 +51,13 @@
- Full duplex support
v1.19 16Oct2002 Zwane Mwaikambo <zwane@linuxpower.ca>
- Additional ethtool features
+ v1.19a 28Oct2002 Davud Ruggiero <jdr@farfalle.com>
+ - Increase *read_eeprom udelay to workaround oops with 2 cards.
*/
#define DRV_NAME "3c509"
-#define DRV_VERSION "1.19"
-#define DRV_RELDATE "16Oct2002"
+#define DRV_VERSION "1.19a"
+#define DRV_RELDATE "28Oct2002"
/* A few values that may be tweaked. */
@@ -570,8 +572,9 @@ no_pnp:
static ushort read_eeprom(int ioaddr, int index)
{
outw(EEPROM_READ + index, ioaddr + 10);
- /* Pause for at least 162 us. for the read to take place. */
- udelay (500);
+ /* Pause for at least 162 us. for the read to take place.
+ Some chips seem to require much longer */
+ mdelay(2);
return inw(ioaddr + 12);
}
@@ -585,7 +588,8 @@ static ushort __init id_read_eeprom(int index)
outb(EEPROM_READ + index, id_port);
/* Pause for at least 162 us. for the read to take place. */
- udelay (500);
+ /* Some chips seem to require much longer */
+ mdelay(4);
for (bit = 15; bit >= 0; bit--)
word = (word << 1) + (inb(id_port) & 0x01);