I have tried the 2 usb keyboards that were not working on my Quad core and try them on my laptop.
Both works fine on the laptop.
Bug reporting thread
Re: Bug reporting thread
Ok, good sleuthing. Can you run the Visopsys 'Devices' GUI program in 'Administration' (preferably on both the working and non-working systems) and expand the tree - the USB controllers should be on the PCI bus - to where we can see the keyboard(s) connected to a particular controller, with all the appropriate details? Maybe use PrtScn to grab the screenshot?
It wasn't obvious to me from the log (although it probably should have been!) which controller the keyboard was connected to. It would also be good if that working USB mouse was connected at the same time. If it was on the same controller, then that would suggest the interrupts are coming through. Also, NB that connecting the keyboard to different physical ports can influence the results.
It wasn't obvious to me from the log (although it probably should have been!) which controller the keyboard was connected to. It would also be good if that working USB mouse was connected at the same time. If it was on the same controller, then that would suggest the interrupts are coming through. Also, NB that connecting the keyboard to different physical ports can influence the results.
Re: Bug reporting thread
I had to change the format of the screenshot because the bmp was not accepted by the forum.
I have tried both on the usb 1.1 (front of computer) and usb 2.0 (rear of the computer) [acer keyboard on Quad Core computer]
With same almost unbelievable results:
The keyboard works but only when there is some events on the mouse on the same controller:
mouse buttons clicks, or moving the mouse.
I have tried both on the usb 1.1 (front of computer) and usb 2.0 (rear of the computer) [acer keyboard on Quad Core computer]
With same almost unbelievable results:
The keyboard works but only when there is some events on the mouse on the same controller:
mouse buttons clicks, or moving the mouse.
- Attachments
-
- nowork_uhci.gif (142.48 KiB) Viewed 38706 times
Last edited by dufresnep on Sat Aug 03, 2019 2:48 am, edited 1 time in total.
Re: Bug reporting thread
On the laptop where it is working.
- Attachments
-
- onlaptop.gif (76 KiB) Viewed 38706 times
Re: Bug reporting thread
More good detective work, thanks!
Earlier I suspected the interrupts, just because that's a common kind of problem. With your latest discovery about moving the mouse, that suggests that the keyboard is generating the data, but the controller is not firing the CPU interrupt when the keyboard packets come in, even though it does for the mouse. That's a new one to me.
Further back in the thread you did a full Linux 'lsusb' for the keyboard, where it's showing the interrupt in endpoint with an interval of 10 (decimal, hex?). Could you possibly do the same with that mouse? I could make debug code or my own version of lsusb to give you, but using Linux would probably be faster in this instance . With the two devices - working and sometimes-sorta-working - it would be helpful to know whether they're being scheduled in the same, or different, UHCI interrupt queues.
I suppose the fact that the device is USB2 and the controller is USB1.1 might have something to do with it, but traditionally the EHCI controller has no choice but to hand off a low-speed device to a companion (UHCI) controller, if one exists.
Earlier I suspected the interrupts, just because that's a common kind of problem. With your latest discovery about moving the mouse, that suggests that the keyboard is generating the data, but the controller is not firing the CPU interrupt when the keyboard packets come in, even though it does for the mouse. That's a new one to me.
Further back in the thread you did a full Linux 'lsusb' for the keyboard, where it's showing the interrupt in endpoint with an interval of 10 (decimal, hex?). Could you possibly do the same with that mouse? I could make debug code or my own version of lsusb to give you, but using Linux would probably be faster in this instance . With the two devices - working and sometimes-sorta-working - it would be helpful to know whether they're being scheduled in the same, or different, UHCI interrupt queues.
I suppose the fact that the device is USB2 and the controller is USB1.1 might have something to do with it, but traditionally the EHCI controller has no choice but to hand off a low-speed device to a companion (UHCI) controller, if one exists.
Re: Bug reporting thread
The output of lsusb seems to be decimal, except when prefixed with 0x.
So 10 is 10, not 16 in my opinion.
I thionk I had reported for the Microsoft keyboard (that I use less)... so here is the Acer keyboard:
Where are those interrupts info?
So 10 is 10, not 16 in my opinion.
Code: Select all
paul@paul-FQ516AA-A2L-a6648f:~$ sudo lsusb -s 5:3 -v
[sudo] Mot de passe de paul :
Bus 005 Device 003: ID 15d9:0a4c Trust International B.V. USB+PS/2 Optical Mouse
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x15d9 Trust International B.V.
idProduct 0x0a4c USB+PS/2 Optical Mouse
bcdDevice 1.00
iManufacturer 0
iProduct 1 (error)
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 64
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0005 1x 5 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
paul@paul-FQ516AA-A2L-a6648f:~$
Code: Select all
paul@paul-FQ516AA-A2L-a6648f:~$ sudo lsusb -s 5:2 -v
Bus 005 Device 002: ID 04f2:0760 Chicony Electronics Co., Ltd Acer KU-0760 Keyboard
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x04f2 Chicony Electronics Co., Ltd
idProduct 0x0760 Acer KU-0760 Keyboard
bcdDevice 1.00
iManufacturer 1 Chicony
iProduct 2 USB Keyboard
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 59
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 65
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 127
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
paul@paul-FQ516AA-A2L-a6648f:~$
Code: Select all
paul@paul-FQ516AA-A2L-a6648f:~$ sudo lsusb -t
/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
|__ Port 8: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/4p, 480M
paul@paul-FQ516AA-A2L-a6648f:~$ lsusb -s 5:1 -v
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0 Full speed (or root) hub
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0001 1.1 root hub
bcdDevice 4.15
iManufacturer 3
iProduct 2
iSerial 1
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
paul@paul-FQ516AA-A2L-a6648f:~$
Code: Select all
paul@paul-FQ516AA-A2L-a6648f:/proc$ cat interrupts
CPU0 CPU1 CPU2 CPU3
0: 35 0 0 0 IO-APIC 2-edge timer
1: 0 0 2 0 IO-APIC 1-edge i8042
8: 0 0 0 1 IO-APIC 8-edge rtc0
9: 0 0 0 0 IO-APIC 9-fasteoi acpi
12: 0 4 0 0 IO-APIC 12-edge i8042
14: 0 0 42625 0 IO-APIC 14-edge ata_piix
15: 0 0 0 0 IO-APIC 15-edge ata_piix
16: 0 0 0 0 IO-APIC 16-fasteoi uhci_hcd:usb3, uhci_hcd:usb8
17: 0 316 0 133 IO-APIC 17-fasteoi snd_hda_intel:card1
18: 0 0 0 0 IO-APIC 18-fasteoi ehci_hcd:usb1, uhci_hcd:usb7
19: 0 0 0 0 IO-APIC 19-fasteoi ata_piix, uhci_hcd:usb6
20: 1 0 0 0 IO-APIC 20-fasteoi firewire_ohci
21: 0 0 0 0 IO-APIC 21-fasteoi uhci_hcd:usb4
23: 166246 0 120785 0 IO-APIC 23-fasteoi ehci_hcd:usb2, uhci_hcd:usb5
24: 0 0 61 1150404 PCI-MSI 1048576-edge enp2s0
25: 0 279470 0 0 PCI-MSI 2097152-edge nvkm
26: 0 0 918 0 PCI-MSI 442368-edge snd_hda_intel:card0
NMI: 2314 2300 2316 2329 Non-maskable interrupts
LOC: 2707448 2705546 2582794 2758846 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
PMI: 2314 2300 2316 2329 Performance monitoring interrupts
IWI: 957736 974147 924908 929505 IRQ work interrupts
RTR: 0 0 0 0 APIC ICR read retries
RES: 1849366 1785914 1830331 1770995 Rescheduling interrupts
CAL: 746447 706610 728201 730160 Function call interrupts
TLB: 733117 693606 727102 728670 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
DFR: 0 0 0 0 Deferred Error APIC interrupts
MCE: 0 0 0 0 Machine check exceptions
MCP: 45 45 45 45 Machine check polls
HYP: 0 0 0 0 Hypervisor callback interrupts
ERR: 0
MIS: 0
PIN: 0 0 0 0 Posted-interrupt notification event
NPI: 0 0 0 0 Nested posted-interrupt event
PIW: 0 0 0 0 Posted-interrupt wakeup event
paul@paul-FQ516AA-A2L-a6648f:/proc$
Code: Select all
paul@paul-FQ516AA-A2L-a6648f:/proc$ sudo dmesg | grep usb
[sudo] Mot de passe de paul :
[ 0.092086] usbcore: registered new interface driver usbfs
[ 0.092096] usbcore: registered new interface driver hub
[ 0.092120] usbcore: registered new device driver usb
[ 1.172095] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.172098] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.172101] usb usb1: Product: EHCI Host Controller
[ 1.172104] usb usb1: Manufacturer: Linux 4.15.0-55-generic ehci_hcd
[ 1.172106] usb usb1: SerialNumber: 0000:00:1a.7
[ 1.192094] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.192097] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.192100] usb usb2: Product: EHCI Host Controller
[ 1.192102] usb usb2: Manufacturer: Linux 4.15.0-55-generic ehci_hcd
[ 1.192105] usb usb2: SerialNumber: 0000:00:1d.7
[ 1.192682] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[ 1.192684] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.192686] usb usb3: Product: UHCI Host Controller
[ 1.192688] usb usb3: Manufacturer: Linux 4.15.0-55-generic uhci_hcd
[ 1.192690] usb usb3: SerialNumber: 0000:00:1a.0
[ 1.193121] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[ 1.193123] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.193124] usb usb4: Product: UHCI Host Controller
[ 1.193126] usb usb4: Manufacturer: Linux 4.15.0-55-generic uhci_hcd
[ 1.193128] usb usb4: SerialNumber: 0000:00:1a.1
[ 1.193531] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
[ 1.193533] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.193535] usb usb5: Product: UHCI Host Controller
[ 1.193537] usb usb5: Manufacturer: Linux 4.15.0-55-generic uhci_hcd
[ 1.193538] usb usb5: SerialNumber: 0000:00:1d.0
[ 1.193938] usb usb6: New USB device found, idVendor=1d6b, idProduct=0001
[ 1.193940] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.193942] usb usb6: Product: UHCI Host Controller
[ 1.193944] usb usb6: Manufacturer: Linux 4.15.0-55-generic uhci_hcd
[ 1.193945] usb usb6: SerialNumber: 0000:00:1d.1
[ 1.194356] usb usb7: New USB device found, idVendor=1d6b, idProduct=0001
[ 1.194358] usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.194360] usb usb7: Product: UHCI Host Controller
[ 1.194361] usb usb7: Manufacturer: Linux 4.15.0-55-generic uhci_hcd
[ 1.194363] usb usb7: SerialNumber: 0000:00:1d.2
[ 1.194773] usb usb8: New USB device found, idVendor=1d6b, idProduct=0001
[ 1.194775] usb usb8: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.194777] usb usb8: Product: UHCI Host Controller
[ 1.194778] usb usb8: Manufacturer: Linux 4.15.0-55-generic uhci_hcd
[ 1.194780] usb usb8: SerialNumber: 0000:00:1d.3
[ 1.664030] usb 5-1: new low-speed USB device number 2 using uhci_hcd
[ 1.861053] usb 5-1: New USB device found, idVendor=04f2, idProduct=0760
[ 1.861057] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.861059] usb 5-1: Product: USB Keyboard
[ 1.861062] usb 5-1: Manufacturer: Chicony
[ 2.368381] usbcore: registered new interface driver usbhid
[ 2.368382] usbhid: USB HID core driver
[ 2.370442] input: Chicony USB Keyboard as /devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/0003:04F2:0760.0001/input/input5
[ 2.428137] hid-generic 0003:04F2:0760.0001: input,hidraw0: USB HID v1.11 Keyboard [Chicony USB Keyboard] on usb-0000:00:1d.0-1/input0
[ 2.428478] input: Chicony USB Keyboard as /devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.1/0003:04F2:0760.0002/input/input6
[ 2.488182] hid-generic 0003:04F2:0760.0002: input,hiddev0,hidraw1: USB HID v1.11 Device [Chicony USB Keyboard] on usb-0000:00:1d.0-1/input1
[ 2.668034] usb 5-2: new low-speed USB device number 3 using uhci_hcd
[ 2.862060] usb 5-2: New USB device found, idVendor=15d9, idProduct=0a4c
[ 2.862063] usb 5-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 2.862065] usb 5-2: Product: USB OPTICAL MOUSE
[ 2.879487] input: USB OPTICAL MOUSE as /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/0003:15D9:0A4C.0003/input/input7
[ 2.879598] hid-generic 0003:15D9:0A4C.0003: input,hidraw2: USB HID v1.11 Mouse [ USB OPTICAL MOUSE] on usb-0000:00:1d.0-2/input0
[ 3.060029] usb 2-8: new high-speed USB device number 4 using ehci-pci
[ 3.397640] usb 2-8: New USB device found, idVendor=058f, idProduct=9380
[ 3.397643] usb 2-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.397644] usb 2-8: Product: Mass Storage Device
[ 3.397646] usb 2-8: Manufacturer: Alcor Micro
[ 3.688112] usb-storage 2-8:1.0: USB Mass Storage device detected
[ 3.688223] scsi host4: usb-storage 2-8:1.0
[ 3.688304] usbcore: registered new interface driver usb-storage
[ 3.689877] usbcore: registered new interface driver uas
[12964.908445] usb 5-2: input irq status -75 received
[12964.948440] usb 5-2: input irq status -75 received
[12964.956439] usb 5-2: input irq status -75 received
[12964.964439] usb 5-2: input irq status -75 received
[12964.972439] usb 5-2: input irq status -75 received
[12964.980438] usb 5-2: input irq status -75 received
[12964.988438] usb 5-2: input irq status -75 received
[12964.996439] usb 5-2: input irq status -75 received
[12965.004438] usb 5-2: input irq status -75 received
[12965.012439] usb 5-2: input irq status -75 received
[12965.020439] usb 5-2: input irq status -75 received
[12965.028438] usb 5-2: input irq status -75 received
[12965.124439] usb 5-2: input irq status -75 received
[12965.132438] usb 5-2: input irq status -75 received
[12965.140439] usb 5-2: input irq status -75 received
[12965.148438] usb 5-2: input irq status -75 received
[12965.156438] usb 5-2: input irq status -75 received
[12965.164438] usb 5-2: input irq status -75 received
[12965.172438] usb 5-2: input irq status -75 received
[12965.180438] usb 5-2: input irq status -75 received
[12965.188438] usb 5-2: input irq status -75 received
[12965.260439] usb 5-2: input irq status -75 received
[12965.268439] usb 5-2: input irq status -75 received
[12965.276438] usb 5-2: input irq status -75 received
[12965.284439] usb 5-2: input irq status -75 received
[12965.292439] usb 5-2: input irq status -75 received
[12965.300438] usb 5-2: input irq status -75 received
[12965.308438] usb 5-2: input irq status -75 received
[12965.316439] usb 5-2: input irq status -75 received
[12965.324438] usb 5-2: input irq status -75 received
[12965.332438] usb 5-2: input irq status -75 received
[12965.340438] usb 5-2: input irq status -75 received
[12965.348438] usb 5-2: input irq status -75 received
[12965.356438] usb 5-2: input irq status -75 received
[12965.364438] usb 5-2: input irq status -75 received
[12965.372438] usb 5-2: input irq status -75 received
[12965.380438] usb 5-2: input irq status -75 received
[12965.388438] usb 5-2: input irq status -75 received
[12965.396439] usb 5-2: input irq status -75 received
[12965.404438] usb 5-2: input irq status -75 received
[12965.412439] usb 5-2: input irq status -75 received
[12965.420438] usb 5-2: input irq status -75 received
[12965.428438] usb 5-2: input irq status -75 received
[12965.436439] usb 5-2: input irq status -75 received
[12965.444438] usb 5-2: input irq status -75 received
[12965.452438] usb 5-2: input irq status -75 received
[12965.580439] usb 5-2: input irq status -75 received
[12965.588439] usb 5-2: input irq status -75 received
[12965.596438] usb 5-2: input irq status -75 received
[12965.604439] usb 5-2: input irq status -75 received
[12965.612439] usb 5-2: input irq status -75 received
[12965.620439] usb 5-2: input irq status -75 received
[12965.628438] usb 5-2: input irq status -75 received
[12965.636439] usb 5-2: input irq status -75 received
[12965.644439] usb 5-2: input irq status -75 received
[12965.652439] usb 5-2: input irq status -75 received
[12965.660438] usb 5-2: input irq status -75 received
... many similar lines erased
[12966.140439] usb 5-2: input irq status -75 received
[12966.148438] usb 5-2: input irq status -75 received
[12966.156438] usb 5-2: input irq status -75 received
[12966.430849] usb 5-2: reset low-speed USB device number 3 using uhci_hcd
[13583.756513] usb 5-2: input irq status -75 received
[13583.764506] usb 5-2: input irq status -75 received
[13583.772506] usb 5-2: input irq status -75 received
[13583.780505] usb 5-2: input irq status -75 received
[13583.788505] usb 5-2: input irq status -75 received
[13583.924507] usb 5-2: input irq status -75 received
[13583.932506] usb 5-2: input irq status -75 received
[13583.980506] usb 5-2: input irq status -75 received
[13583.988506] usb 5-2: input irq status -75 received
... many similar lines erased
[13602.836507] usb 5-2: input irq status -75 received
[13602.844507] usb 5-2: input irq status -75 received
[13602.852507] usb 5-2: input irq status -75 received
[13603.125427] usb 5-2: reset low-speed USB device number 3 using uhci_hcd
paul@paul-FQ516AA-A2L-a6648f:/proc$
Re: Bug reporting thread
That's great, thanks. Curiously, they all seem to have the same interval. That kind of suggests some things to check out.
The number bInterval in the interrupt-in endpoint descriptor says the maximum rate that the controller should poll the endpoint for data. For a low-speed device 10 means 10 milliseconds. With a UHCI controller, you set up a series of queues that get polled at different intervals. In this case, the recurring interrupt would be set up in the same queue for all these devices. But for some reason, the thing you appear to have uncovered is that the controller isn't noticing a change in the queue that contains both keyboard and mouse, unless the mouse has data. Then it fires the CPU interrupt and both of them get serviced. Pretty weird.
The number bInterval in the interrupt-in endpoint descriptor says the maximum rate that the controller should poll the endpoint for data. For a low-speed device 10 means 10 milliseconds. With a UHCI controller, you set up a series of queues that get polled at different intervals. In this case, the recurring interrupt would be set up in the same queue for all these devices. But for some reason, the thing you appear to have uncovered is that the controller isn't noticing a change in the queue that contains both keyboard and mouse, unless the mouse has data. Then it fires the CPU interrupt and both of them get serviced. Pretty weird.
Re: Bug reporting thread
It might be worth trying the new 0.85 release. I did a bunch of work on the APIC driver and interrupt infrastructure, and definitely solved some problems (for example, it can now boot on my own dev workstation)