After upgrading from kernel 2.6.38.3 to 2.6.38.4, my MCEUSB remote that was plugged into a USB 3.0 port stopped working. It shows up in lsusb, but it is otherwise unrecognized and doesn't create /dev/lirc0 device or entry in /sys/class/rc. If I plug it into a USB 2.0 port, then it is recognized again. Also, I tried a USB flash drive, mouse, and USB network card in the same USB 3.0 port, and all of them worked fine. For some reason, it's just the MCEUSB remote that fails to work. Here's the errors that get logged when I try to use my remote in the USB 3.0 port: May 1 16:22:53 localhost kernel: [ 461.352298] xhci_hcd 0000:02:00.0: ERROR: unexpected command completion code 0x11. May 1 16:22:53 localhost kernel: [ 461.352304] usb 2-3: can't set config #1, error -22 Output from lsusb: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 009: ID 0cf3:9170 Atheros Communications, Inc. AR9170 802.11n Bus 005 Device 006: ID 1784:0011 TopSeed Technology Corp. Bus 005 Device 005: ID 04f3:0212 Elan Microelectronics Corp. Laser Mouse Bus 006 Device 003: ID 047d:2043 Kensington Bus 002 Device 010: ID 046d:c21a Logitech, Inc. Precision Gamepad Output from lspci: 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS880 Host Bridge 00:02.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (ext gfx port 0) 00:09.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4) 00:0a.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5) 00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode] (rev 40) 00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:12.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:13.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 41) 00:14.1 IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller (rev 40) 00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev 40) 00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller (rev 40) 00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40) 00:14.5 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI2 Controller 00:15.0 PCI bridge: ATI Technologies Inc Device 43a0 00:15.1 PCI bridge: ATI Technologies Inc Device 43a1 00:16.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:16.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control 00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control 01:00.0 VGA compatible controller: ATI Technologies Inc RV730 PRO [Radeon HD 4650] 01:00.1 Audio device: ATI Technologies Inc RV710/730 02:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) 04:0e.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) 05:00.0 IDE interface: JMicron Technology Corp. JMB368 IDE controller 06:00.0 Network controller: RaLink RT2860
This is a new one to me, partially because I haven't got any systems with USB3 ports yet. I've got one showing up later this week though, so I'll try to reproduce the issue on my end too.
One thing that might help is to collect a usbmon trace showing what happens when the remote is plugged in. Instructions are in the kernel source file Documentation/usb/usbmon.txt. For comparison, it would be a good idea to attach as well a similar usbmon trace showing what happens when the remote is plugged into a USB-2.0 port.
Created attachment 57882 [details] usbmon when connecting via USB2.
Created attachment 57892 [details] usbmon when connecting via USB3.
I have attached the output when connecting via USB 2 and 3. I disconnected all USB devices except for my keyboard and mouse for these runs, and collected input only when connecting the remote.
Okay, this is just a guess, but it's quite likely that your problem will be fixed by a patch that was posted just a couple of days ago: http://marc.info/?l=linux-usb&m=130531740713842&w=2 The patch fixes a recently-introduced error in the interpretation of interrupt endpoint periods for full-speed devices under xHCI.
Aaron, the patch mentioned in comment #6 has been merged for 3.0-rc1 and backported to v2.6.38.8 and v2.6.39.1 . Can you test if any of those fix your issue?
After updating, it appears to work.
Fix merged in v3.0-rc1: commit b513d44751bfb609a3c20463f764c8ce822d63e9 Author: Sarah Sharp <sarah.a.sharp@linux.intel.com> Date: Fri May 13 13:10:01 2011 -0700 xhci: Fix full speed bInterval encoding.