On 05/01/2010 02:16 PM, Alan Stern wrote:
On Fri, 30 Apr 2010, Stephen Warren wrote:
Linux is having problems fully recognizing one of my USB devices, a
Logitech Harmony 700 universal remote control. I also have a Logitech
Harmony 880 (and other USB devices) which work fine on the same PC and
USB connector.
The issue is that lsusb shows bNumConfigurations=0. There should be one
configuration with a couple of end-points. Sometimes lsusb will show the
expected results (e.g. 1 in 10-20 times it's plugged in) and
communication with the remote works as expected. Also, the 770 has a
special "safe mode" (which boots alternate firmware), and when in this
mode, lsusb always shows bNumConfigurations=1 as expected.
I've tried a couple different kernels without any luck: 2.6.32 (Ubuntu
Lucid latest desktop kernel) and 2.6.34 (Ubuntu Lucid build of
"upstream" kernel, I believe without any Ubuntu patches)
I'm attaching a variety of debug information:
The usbmon traces show that the device sometimes dies when it receives
a Get-Device-Qualifier request. Not always, but sometimes.
I took a look at the USB specification. Is the failing command the
following (from a good run):
e8148c80 619776204 S Ci:5:004:0 s 80 06 0600 0000 000a 10 <
e8148c80 619780175 C Ci:5:004:0 -71 0
If I understand it, the -71 is the result code, and -71 indicates that
it fails (specifically -EPROTO if I'm reading the kernel sources
correctly). In a bad run, I see:
e5b6ae80 280483165 S Ci:5:002:0 s 80 06 0600 0000 000a 10 <
e5b6ae80 280485150 C Ci:5:002:0 -32 0
... with result code -32, which is also a failure (specifically -EPIPE).
Am I interpreting this all correctly? Is this command expected to fail
in a specific way even in a "good" case?
Thanks for any pointers.
I have no idea why it would do this. A firmware bug would generally
cause it to die every time, but there's no other obvious explanation.
Particularly since the alternate firmware does not die; it handles the
request correctly.
Hmmm. I guess I'll go read the PIC USB interface specification and see
how much of this is SW vs. HW controlled on this microcontroller.
--
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