Re: pcnet_cs problems in ARM handheld

From: Russell King
Date: Mon Apr 11 2005 - 15:01:50 EST


On Mon, Apr 11, 2005 at 04:22:52PM +0000, rafael2k wrote:
> Hi David and others kernel developers,
> Thanx for your pcnet_cs driver! I use it since old days :-P
>
> I bought a IC-CARD+ pcnet_cs compatible pcmcia nic, and i'm using it on a
> StrongARM HP Jornada 710. My kernel is a 2.4.18-rmk3-hh10 and my pcmcia-cs
> version is 3.1.33
>
> From dmesg I got this messages:
>
> --
> jornada720_pcmcia_configure_socket(): config socket 0 vcc 50 vpp 0
> jornada720_pcmcia_configure_socket(): config socket 0 vcc 50 vpp 0
> eth0: NE2000 Compatible: io 0xc2800300, irq 114, hw_addr 00:80:C8:88:00:56
> eth0: interrupt(s) dropped!
> NETDEV WATCHDOG: eth0: transmit timed out
> eth0: Tx timed out, lost interrupt? TSR=0x3, ISR=0x96, t=39.
> NETDEV WATCHDOG: eth0: transmit timed out
> eth0: Tx timed out, lost interrupt? TSR=0x3, ISR=0x3, t=55.
> NETDEV WATCHDOG: eth0: transmit timed out
> eth0: Tx timed out, lost interrupt? TSR=0x3, ISR=0x3, t=49.
> NETDEV WATCHDOG: eth0: transmit timed out
> eth0: Tx timed out, lost interrupt? TSR=0x3, ISR=0x3, t=88.
> eth0: interrupt(s) dropped!
> NETDEV WATCHDOG: eth0: transmit timed out
> eth0: Tx timed out, lost interrupt? TSR=0x3, ISR=0x3, t=77.

This looks like a case of the old 2.4 interrupt handling problems
which got resolved by rewriting the ARM interrupt handling
infrastructure during 2.5.

The problem occurs because of the need to handle edge-triggered
interrupts (as is the case with Intel CPUs) differently from
level-triggered interrupts, especially when the peripherals are
designed to be used with level-triggered inputs.

In effect, you can end up with the situation where the device has
its interrupt asserted, but because the CPU doesn't see a change
of state, it "forgets" about the interrupt input.

I'm not aware of a solution for this problem with 2.4 kernels.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/