On Thu, 1 Mar 2007, Gordon Messmer wrote:
> Here's an aspect that I'd completely forgotten in the last year.
> Occasionally the mouse is assigned a different ID (I think?), and then
> stops causing resets.
>
> Mar 1 05:40:28 herald kernel: usb 2-1: reset low speed USB device using
> uhci_hcd and address 3
> <snip much of the same>
> Mar 1 06:11:39 herald kernel: usb 2-1: failed to restore interface 0
> altsetting 0 (error=-71)
> Mar 1 06:11:39 herald kernel: usb 2-1: USB disconnect, address 3
> Mar 1 06:11:39 herald kernel: usb 2-1: new low speed USB device using
> uhci_hcd and address 4
> Mar 1 06:11:39 herald kernel: usb 2-1: configuration #1 chosen from 1
> choice
> Mar 1 06:11:39 herald kernel: input: Logitech USB Mouse as
> /class/input/input3
> Mar 1 06:11:39 herald kernel: input: USB HID v1.10 Mouse [Logitech USB
> Mouse] on usb-0000:00:1d.1-1
I don't think this is related to anything. It's probably just a
coincidence.
> This appears in usbmon during each reset:
>
> f7e67b40 2881999053 C Ii:003:01 -84 0
> f7e67b40 2882012282 S Ii:003:01 -115 4 <
> f7e67b40 2891495532 C Ii:003:01 -84 0
Those three lines are an I/O error, a retry, and another I/O error 9.5
seconds later.
> f766b340 2891495554 S Co:001:00 s 23 03 0004 0001 0000 0
> f766b340 2891495561 C Co:001:00 0 0
> f66ad4c0 2891697063 S Ci:001:00 s a3 00 0000 0001 0004 4 <
> f66ad4c0 2891697068 C Ci:001:00 0 4 = 03030000
> f66ad4c0 2891748048 S Co:001:00 s 23 01 0014 0001 0000 0
> f66ad4c0 2891748051 C Co:001:00 0 0
> f66ad4c0 2891748064 S Ci:000:00 s 80 06 0100 0000 0040 64 <
> f66ad4c0 2891754543 C Ci:000:00 0 18 = 12011001 00000008 6d040cc0 10060102
> 0001
> f66ad4c0 2891754552 S Co:001:00 s 23 03 0004 0001 0000 0
> f66ad4c0 2891754556 C Co:001:00 0 0
> f66ad4c0 2891956001 S Ci:001:00 s a3 00 0000 0001 0004 4 <
> f66ad4c0 2891956006 C Ci:001:00 0 4 = 03030000
> f66ad4c0 2892006988 S Co:001:00 s 23 01 0014 0001 0000 0
> f66ad4c0 2892006991 C Co:001:00 0 0
> f66ad4c0 2892006993 S Co:000:00 s 00 05 0003 0000 0000 0
> f66ad4c0 2892009556 C Co:000:00 0 0
> f66ad4c0 2892022985 S Ci:003:00 s 80 06 0100 0000 0012 18 <
> f66ad4c0 2892028558 C Ci:003:00 0 18 = 12011001 00000008 6d040cc0 10060102
> 0001
> f66ad4c0 2892028567 S Ci:003:00 s 80 06 0200 0000 0022 34 <
> f66ad4c0 2892036558 C Ci:003:00 0 34 = 09022200 010100a0 32090400 00010301
> 02000921 10010001 22440007 05810308
> f66ad4c0 2892036566 S Co:003:00 s 00 09 0001 0000 0000 0
> f66ad4c0 2892039557 C Co:003:00 0 0
> f66ad4c0 2892039565 S Co:003:00 s 01 0b 0000 0000 0000 0
> f66ad4c0 2892042557 C Co:003:00 0 0
> f66ad4c0 2892042664 S Co:003:00 s 21 0a 0000 0000 0000 0
> f66ad4c0 2892045562 C Co:003:00 0 0
> f7e67b40 2892045579 S Ii:003:01 -115 4 <
All that stuff is a standard device reset.
>From the fact that your two errors occurred more than 9 seconds apart, it
seems that you are encountering some intermittent electrical or
interference problem. The patch below may help; it fixes a small bug in
the logic used by usbhid for deciding when to reset a device. It should
apply to 2.6.20 or 2.6.21-rc.
Alan Stern
Index: usb-2.6/drivers/usb/input/hid-core.c
===================================================================
--- usb-2.6.orig/drivers/usb/input/hid-core.c
+++ usb-2.6/drivers/usb/input/hid-core.c
@@ -147,6 +147,11 @@ static void hid_io_error(struct hid_devi
if (usb_get_intfdata(usbhid->intf) == NULL)
goto done;
+ /* If it has been at least 2 seconds since the last error, we'll
+ * assume this a brand new error and reset the retry timeout. */
+ if (time_after(jiffies, usbhid->stop_retry + 2*HZ))
+ usbhid->retry_delay = 0;
+
/* When an error occurs, retry at increasing intervals */
if (usbhid->retry_delay == 0) {
usbhid->retry_delay = 13; /* Then 26, 52, 104, 104, ... */
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users