patch-2.2.19 linux/drivers/net/eepro100.c
Next file: linux/drivers/net/gmac.c
Previous file: linux/drivers/net/cs89x0.c
Back to the patch index
Back to the overall index
- Lines: 35
- Date:
Sun Mar 25 11:37:34 2001
- Orig file:
v2.2.18/drivers/net/eepro100.c
- Orig date:
Sun Mar 25 11:28:25 2001
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.18/drivers/net/eepro100.c linux/drivers/net/eepro100.c
@@ -751,6 +751,7 @@
This takes less than 10usec and will easily finish before the next
action. */
outl(PortReset, ioaddr + SCBPort);
+ inl(ioaddr + SCBPort);
/* Honor PortReset timing. */
udelay(10);
@@ -778,7 +779,7 @@
/* The self-test results must be paragraph aligned. */
s32 str[6], *volatile self_test_results;
int boguscnt = 16000; /* Timeout for set-test. */
- if (eeprom[3] & 0x03)
+ if ((eeprom[3] & 0x03) != 0x03)
printk(KERN_INFO " Receiver lock-up bug exists -- enabling"
" work-around.\n");
printk(KERN_INFO " Board assembly %4.4x%2.2x-%3.3d, Physical"
@@ -839,6 +840,7 @@
#endif /* kernel_bloat */
outl(PortReset, ioaddr + SCBPort);
+ inl(ioaddr + SCBPort);
/* Honor PortReset timing. */
udelay(10);
@@ -1062,6 +1064,9 @@
/* Set the segment registers to '0'. */
wait_for_cmd_done(ioaddr + SCBCmd);
outl(0, ioaddr + SCBPointer);
+ /* impose a delay to avoid a bug */
+ inl(ioaddr + SCBPointer);
+ udelay(10);
outb(RxAddrLoad, ioaddr + SCBCmd);
wait_for_cmd_done(ioaddr + SCBCmd);
outb(CUCmdBase, ioaddr + SCBCmd);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)