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

Reply via email to