Re: eepro100 + 2.2.18 + laptop problems

Andrey Savochkin
2001-02-13T01:27:04Z

[-- Attachment #1: Type: text/plain, Size: 309 bytes --]

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

[-- Attachment #2: res --]
[-- Type: text/plain, Size: 1248 bytes --]

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);