Bug 34202 - MCEUSB remotes don't work with USB 3.0 ports
Summary: MCEUSB remotes don't work with USB 3.0 ports
Status: CLOSED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Greg Kroah-Hartman
URL:
Keywords:
Depends on:
Blocks: 32012
  Show dependency tree
 
Reported: 2011-05-01 23:48 UTC by Aaron Barany
Modified: 2011-06-11 11:01 UTC (History)
5 users (show)

See Also:
Kernel Version: 2.6.38.4
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
usbmon when connecting via USB2. (13.18 KB, text/plain)
2011-05-15 00:26 UTC, Aaron Barany
Details
usbmon when connecting via USB3. (6.94 KB, text/plain)
2011-05-15 00:27 UTC, Aaron Barany
Details

Description Aaron Barany 2011-05-01 23:48:51 UTC
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
Comment 1 Jarod Wilson 2011-05-03 20:52:09 UTC
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.
Comment 2 Alan Stern 2011-05-14 23:00:44 UTC
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.
Comment 3 Aaron Barany 2011-05-15 00:26:45 UTC
Created attachment 57882 [details]
usbmon when connecting via USB2.
Comment 4 Aaron Barany 2011-05-15 00:27:10 UTC
Created attachment 57892 [details]
usbmon when connecting via USB3.
Comment 5 Aaron Barany 2011-05-15 00:28:58 UTC
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.
Comment 6 Alan Stern 2011-05-15 17:34:03 UTC
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.
Comment 7 Florian Mickler 2011-06-06 16:34:03 UTC
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?
Comment 8 Aaron Barany 2011-06-11 09:49:53 UTC
After updating, it appears to work.
Comment 9 Florian Mickler 2011-06-11 11:01:01 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.