Re: eepro100 + 2.2.18 + laptop problems

Andrey Savochkin (saw@saw.sw.com.sg)
Tue, 13 Feb 2001 09:26:38 +0800


--d6Gm4EdcadzBjdND
Content-Type: text/plain; charset=us-ascii

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

--d6Gm4EdcadzBjdND
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=res

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

--d6Gm4EdcadzBjdND--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://vger.kernel.org/lkml/