speedtouch driver patch
Przemyslaw Wegrzyn
czajnik at czajsoft.pl
Wed Mar 2 12:52:09 EST 2005
Hi !
The problem - after moving to kernel 2.6.10 (from 2.4.x) modem sometimes fails
to boot up, with the following in traces:
Feb 27 03:16:33 lapcio kernel: speedtch_test_sequence failed on URB147: -32
Feb 27 03:16:33 lapcio kernel: speedtch_test_sequence failed on URB148: -32
Feb 27 03:16:33 lapcio kernel: speedtch_test_sequence failed on URB149: -32
Feb 27 03:16:33 lapcio kernel: speedtch_test_sequence failed on URB150: -32
Feb 27 03:16:33 lapcio kernel: SpeedTouch: Failed to start ADSL
synchronisation: -32
It appears that the check that the driver performs at the beginning to see if
the firmware is loaded is the reason. After plugging in the device it always
returns -110 (ETIMEDOUT) on ep0in, but it also (sometimes) makes
all subsequent requests to ep0 fail with EPIPE (STALL condition). I haven't
seen windows driver doing anything like that after plugging in - it goes
directly to firmware upload stuff.
If anyone is interested, below is the patch that solved the problem for me by
resetting the device in case of failed firmware check. With this patch I've
seen no more the problems mentioned above. This patch I've already posted to
speedtouch mailing list.
Best Regards,
Przemyslaw
--- speedtch.c.orig 2005-02-27 03:59:53.000000000 +0100
+++ speedtch.c 2005-02-27 04:01:52.000000000 +0100
@@ -792,6 +792,10 @@
speedtch_got_firmware(instance, 1);
speedtch_poll_status(instance);
} else {
+ dbg("firmware not loaded yet, resetting device");
+ ret = usb_reset_device(dev);
+ dbg("usb_reset_device returned %d", ret);
+
speedtch_firmware_start(instance);
}
More information about the Usbatm
mailing list