On Sun, Feb 11, 2001 at 10:40:33PM +1100, CaT wrote:
[snip]
> Feb 11 22:30:18 theirongiant kernel: eepro100: cmd_wait for(0x70) timedout
>with(0x70)!
Please try the attached patch.
Actually, it's designed to solve another problem, but may be your one has the
same origin as that other.
Best regards
Andrey
Index: eepro100.c
===================================================================
RCS file: /home/oursoft/eepro100/eepro100.c,v
retrieving revision 1.20.2.13
diff -u -r1.20.2.13 eepro100.c
--- eepro100.c 2000/09/14 04:41:58 1.20.2.13
+++ eepro100.c 2001/02/13 01:22:07
@@ -726,6 +726,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);
@@ -814,6 +815,7 @@
#endif /* kernel_bloat */
outl(PortReset, ioaddr + SCBPort);
+ inl(ioaddr + SCBPort);
/* Honor PortReset timing. */
udelay(10);
@@ -1037,6 +1039,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);
@@ -1298,6 +1303,7 @@
end_bh_atomic();
/* Reset the Tx and Rx units. */
outl(PortReset, ioaddr + SCBPort);
+ inl(ioaddr + SCBPort);
/* We may get spurious interrupts here. But I don't think that they
may do much harm. 1999/12/09 SAW */
udelay(10);