On Fri, 10 Apr 2015, Alistair Grant wrote: > Hi Alan, > > Thanks very much for your assistance. > > On Fri, Apr 10, 2015 at 5:29 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > On Fri, 10 Apr 2015, Alistair Grant wrote: > > ... > >> i.e. the mouse works reliably in eHCI controllers, but not in xHCI > >> controllers (I've tried two different Intel xHCI controllers). The > > > > Have you tried testing a different mouse? > > I've got two other mice that work(ed) with xHCI (the first has died, > which led to buying the one with the problems, and a second one which > was purchased to tide me over while I try and figure out the problem > with the problem mouse). It does sound as though the mouse is the major part of the problem. > > Can you post the usbmon log for an EHCI controller? Comparing the two > > logs may be helpful. Here's the relevant part of the xHCI trace: > ffff88017912d600 1598886123 S Ci:1:014:0 s 80 06 0302 0409 0002 2 < > ffff88017912d600 1598886469 C Ci:1:014:0 0 2 = 1803 When asked for the length of the Product string descriptor, the mouse says it is 24 bytes. > ffff88017912d600 1598886486 S Ci:1:014:0 s 80 06 0302 0409 0018 24 < > ffff88017912d600 1598887112 C Ci:1:014:0 -32 0 When asked for the first 24 bytes of the string descriptor, there is no data and the endpoint is halted. > ffff88017912d600 1598887121 S Ci:1:014:0 s 80 06 0302 0409 0018 24 < > ffff88017912d600 1603885049 C Ci:1:014:0 -2 0 When asked again, there is no reply at all and the transfer times out after 5 seconds. At this point it appears that the mouse's firmware has crashed. Here's the corresponding part of the EHCI trace: > ffff88014a1bfd80 3642762459 S Ci:3:007:0 s 80 06 0302 0409 0002 2 < > ffff88014a1bfd80 3642763176 C Ci:3:007:0 0 2 = 1803 When asked for the length of the Product string descriptor, the mouse says it is 24 bytes. > ffff88014a1bfd80 3642763195 S Ci:3:007:0 s 80 06 0302 0409 0018 24 < > ffff88014a1bfd80 3642763916 C Ci:3:007:0 -32 15 = 18034c00 61007300 > 65007200 200030 When asked for the first 24 bytes of the string descriptor, the mouse sends only 15 bytes of data and then halts the endpoint. That is most definitely a bug in the mouse. The received data says "Laser 0", for whatever that's worth. > ffff88014a1bfd80 3642763934 S Ci:3:007:0 s 80 06 0302 0409 0018 24 < > ffff88014a1bfd80 3642764917 C Ci:3:007:0 -32 15 = 18034c00 61007300 > 65007200 200030 When asked again, the mouse gives the same response. At least the firmware didn't crash. Comparing these two results suggests that the mouse did send 15 bytes of data to the xHCI controller, but for some reason the xhci-hcd driver did not report it. Perhaps the controller then failed to complete the transfer somehow. That may have confused the mouse's firmware and caused it to hang. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html