Messages in this thread Patch in this message | | | Date | Tue, 13 Feb 2001 09:26:38 +0800 | From | Andrey Savochkin <> | Subject | Re: eepro100 + 2.2.18 + laptop problems |
| |
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); | |