I have found a problem with wd.c module not getting the right IRQ for my
WD80x3 like card when going from 1.3.6 to 1.3.7 Took me a while to find
this bugger. The IRQ, SHRMEM and IOADDR is set in my
linux/drivers/net/CONFIG file so the settings can be transfered to
Space.c.
Here are the messages for 1.3.6:
kernel: eth0: WD80x3 at 0x300, 00 C0 93 00 90 FE WD8013, IRQ 10, shared
memory at 0xd0000-0xd3fff.
kernel: wd.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
kernel: Linux version 1.3.6 (root@jzc) (gcc version 2.5.8) #2 Tue Jul 4
16:28:07 MST 1995
1.3.6 wd.c gets the right IRQ, BUT in 1.3.7:
kernel: eth0: WD80x3 at 0x300, 00 C0 93 00 90 FE WD8013, IRQ 9, shared
memory at 0xd0000-0xd3fff.
kernel: wd.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
kernel: Linux version 1.3.7 (root@jzc) (gcc version 2.5.8) #2 Thu Jul 6
22:35:04 MST 1995
In 1.3.7, wd.c sets the wrong IRQ. I look in wd.c and find these lines:
...............
/* The 8390 isn't at the base address -- the ASIC regs are there! */
dev->base_addr = ioaddr+WD_NIC_OFFSET;
if (dev->irq < 2) {
int irqmap[] = {9,3,5,7,10,11,15,4};
int reg1 = inb(ioaddr+1);
...............
Soooooo, I said to myself "Maybe wd.c is setting IRQ to 9 cause it is the
first one that it detected"
I then switched 9 and 10 around and it works, for now.
Somehow, wd.c is not getting the IRQ setting from Space.c and proceeds to
set the IRQ to 9 from the above line. I figured something got changed
outside of wd.c since it was not changed in 1.3.7.
-------------------------------------------------------------------------------
Jonathan Claxton __ __ ____ ___ ___ ____
jzc@primenet.com /__)/__) / / / / /_ /\ / /_ /
/ / \ / / / / /__ / \/ /___ /
-------------------------------------------------------------------------------