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 _______________________________________________ Linux-usb-users@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users