Bug reporting thread

General discussion about Visopsys.
dufresnep
Posts: 14
Joined: Sat Nov 28, 2015 6:02 am

yes, this is linked to an usb controller

Post by dufresnep »

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.
User avatar
andymc
Posts: 590
Joined: Tue Nov 16, 2010 7:20 pm

Re: Bug reporting thread

Post by andymc »

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.
dufresnep
Posts: 14
Joined: Sat Nov 28, 2015 6:02 am

Re: Bug reporting thread

Post by dufresnep »

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.
Attachments
nowork_uhci.gif
nowork_uhci.gif (142.48 KiB) Viewed 40182 times
Last edited by dufresnep on Sat Aug 03, 2019 2:48 am, edited 1 time in total.
dufresnep
Posts: 14
Joined: Sat Nov 28, 2015 6:02 am

Re: Bug reporting thread

Post by dufresnep »

On the laptop where it is working.
Attachments
onlaptop.gif
onlaptop.gif (76 KiB) Viewed 40182 times
User avatar
andymc
Posts: 590
Joined: Tue Nov 16, 2010 7:20 pm

Re: Bug reporting thread

Post by andymc »

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.
dufresnep
Posts: 14
Joined: Sat Nov 28, 2015 6:02 am

Re: Bug reporting thread

Post by dufresnep »

The output of lsusb seems to be decimal, except when prefixed with 0x.
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:~$ 
I thionk I had reported for the Microsoft keyboard (that I use less)... so here is the Acer keyboard:

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:~$ 
Where are those interrupts info?

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$ 
User avatar
andymc
Posts: 590
Joined: Tue Nov 16, 2010 7:20 pm

Re: Bug reporting thread

Post by andymc »

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.
User avatar
andymc
Posts: 590
Joined: Tue Nov 16, 2010 7:20 pm

Re: Bug reporting thread

Post by andymc »

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)
Post Reply