usbcore, kernel 2.6.18.1
PATCH 1/1 usbcore, kernel 2.6.18.1
This patch is to eventually detect a Velleman K8055 USB device. Without the patch it will fail detection with following errors:
usb 1-2: can't read configurations, error -110
=> probably because of usb non-conformance reason of the K8055 card. (timing issues...)
With this patch, detection will keep on trying until usb card gets recognized.
This patch adds a device reset in the "fail:" sequence instead of just marking the device state as NOTATTACHED.
[gluyten@workstation pup214]$ diff -ulinux-2.6.18.1/drivers/usb/core/hub.c hub.c
--- linux-2.6.18.1/drivers/usb/core/hub.c 2006-10-14
05:34:03.000000000 +0200
+++ hub.c 2008-04-03 14:47:49.000000000 +0200
@@ -1450,7 +1450,9 @@
return 0;
fail:
- usb_set_device_state(udev, USB_STATE_NOTATTACHED);
+// usb_set_device_state(udev, USB_STATE_NOTATTACHED);
+ usb_lock_device_for_reset(udev, NULL);
+ usb_reset_composite_device(udev, NULL);
return err;}
Signature · 1 line
Gerd Luyten <[email protected]>
Quoted 17 lines · On Thu, 03 Apr 2008 15:14:54 +0200 Gerd Luyten <[email protected]> wrote:
This patch is to eventually detect a Velleman K8055 USB device. Without the patch it will fail detection with following errors:
usb 1-2: can't read configurations, error -110
=> probably because of usb non-conformance reason of the K8055 card. (timing issues...)With this patch, detection will keep on trying until usb card gets recognized.
This patch adds a device reset in the "fail:" sequence instead of just marking the device state as NOTATTACHED.[gluyten@workstation pup214]$ diff -u
linux-2.6.18.1/drivers/usb/core/hub.chub.c
---linux-2.6.18.1/drivers/usb/core/hub.c2006-10-14
05:34:03.000000000 +0200
+++hub.c2008-04-03 14:47:49.000000000 +0200
Review line 1458
Quoted 10 lines
(quoted diff) +3
-1@@ -1450,7 +1450,9 @@ return 0; fail: - usb_set_device_state(udev, USB_STATE_NOTATTACHED); +// usb_set_device_state(udev, USB_STATE_NOTATTACHED); + usb_lock_device_for_reset(udev, NULL); + usb_reset_composite_device(udev, NULL); return err; }
2.6.18 is very old. Does 2.6.24 (or later) also need fixing?
Thanks.