3c507 driver problems

From: Eric Chang (ericchang@my-Deja.com)
Date: Fri Aug 25 2000 - 20:36:54 EST


Hi. I have been having some problems with a
3c507 card in a PCI motherboard (2.2.12). The
initial problem was that

insmod 3c507.o

would result in the message "Device or resource
busy". It would also hang the mouse until
reboot. Obviously, something was wrong.

cat /proc/interrupts

showed that IRQ3 was being used by the serial
port. And, a look at the printk() log showed
that the driver was trying to pick IRQ3. This
should not happen.

Looking at the docs in :
http://www.redhat.com/support/manuals/RHL-6.0-Manual/install-guide/manual/doc117.html

shows that the string irq=7 should help set the
board to the free irq. This apparently has no
effect, however.

Adding printk() statements to the source code
shows that it never really uses the irq=7 string:

        irq = inb(ioaddr + IRQ_CONFIG) & 0x0f;

        irqval = request_irq(irq, &el16_interrupt, 0, "3c507", dev);
        if (irqval) {
                printk ("unable to get IRQ %d (irqval=%d).\n", irq, irqval);
                return EAGAIN;
        }

Instead, irq is read from the card! This is an
error in either the driver or the documentation.

Trying to write the new irq value from:

        dev_3c507.irq = irq;

does not work, since without the proper enable
code, the register is read only at this time.

The typical solution for this problem is to run
the 3com utility under DOS to set the EEPROM.
It would be so much simpler to use if the driver
only conformed to the manual. Then, you would
not have to use DOS. Also, you would not need
to crash your machine needlessly.

What do you folks think? Should this be fixed?
Probably more important than checking for low
memory conditions? :-)

Anyway, I downloaded the programmer's reference
from the 3com www site (the Ethernet-HOWTO is
out of date), and it tells how to do hte job. I
followed the instructions in the reference for
reconfiguring the gate array state machine to
read-write for that register, and loaded the
up to now unused parameter, and it worked. Even
ifconfig eth0 worked!

Is this fix of any value to the main branch?

Eric

--== Sent via Deja.com http://www.deja.com/ ==--
Before you buy.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 31 2000 - 21:00:17 EST