Re: Kernel Freeze, Atmel at79c505 (RFMD 2958), Fiberline FL-WL240U, usb-uhci.o

Joerg Albert <[email protected]>
Newsgroups gmane.linux.drivers.at76c503a.user
Message-ID <[email protected]>
Hi,

On Fri, 9 Jan 2004, Klaus Franken wrote:

> I have some kernel freezes if I use the at79c505-rfmd2958.o with usb-uhci.o
> module. With the usb-modul "uhci.o" is every fine, but I need the other modul
> due to lack of support by another druver (REINER SCT CyberJack pinpad
> (chipcard-reader)).
>
> System:
> 	Kernel 2.4.23
> 	USB: usb-uhci.o, USB 1.1
> 	at76c503-driver: v0.12beta4
>
> Symptoms:
>
> 1.
> at76c503-fw_skel.c Atmel at79c505 (RFMD 2958) Wireless LAN Driver v0.12beta4
> loading
> usb.c registered new driver at79c505-rfmd2958
> at76c503.c: downloading internal fw failed with -84
> # kernel freezed
>
> 2.
> # loading modules
> [..]
> Unable to handle kernel NULL pointer dereference at virtual address 0000000c
> [...]
> Process khubd
> [...]
> Kernel panic: Aiee, killing interrupt handler!
> In interrupt handler - not syncing
> # Caps- and Scroll-Lock blinking, kernel freezed
>
> Does anyone have better experiences? Any other ideas?

got my WL240U today. Your crash is caused by a driver bug, which is fixed
in 0.12beta5 (just checked in, avail. in the snapshot tomorrow).

Unfortunately it just hid another problem: usb-uhci calls the driver's
disconnect procedure when the device got reset during startup leading to
_two_ wlanX netdev and a lot of trouble afterwards. uhci doesn't do that,
nor does the unified uhci-hcd of 2.6.x. I compared uhci and usb-uhci and
found a small patch to usb-uhci, which helped here (attached in case
anyone feels like patching usb-uhci and compiling a new kernel).

The problem doesn't show up if you use an external hub.

So I'd recommend to either try and use 0.11, if you must use usb-uhci
and cannot use an external USB hub or use >= 0.12beta5 with a patched
usb-uhci. This applies to 2.4.x kernels only.
HTH.

/Jörg
diff.usb_uhci (text/plain, 507 B)
diff -ru linux-2.4.23/drivers/usb/host/usb-uhci.c linux-2.4.23.work/drivers/usb/host/usb-uhci.c
--- linux-2.4.23/drivers/usb/host/usb-uhci.c	2003-08-25 13:44:42.000000000 +0200
+++ linux-2.4.23.work/drivers/usb/host/usb-uhci.c	2004-01-10 20:19:50.000000000 +0100
@@ -2090,7 +2090,7 @@
 			OK (0);
 		case (RH_PORT_RESET):
 			SET_RH_PORTSTAT (USBPORTSC_PR);
-			uhci_wait_ms (10);
+			uhci_wait_ms (50);
 			uhci->rh.c_p_r[wIndex - 1] = 1;
 			CLR_RH_PORTSTAT (USBPORTSC_PR);
 			udelay (10);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.