xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)
So it turns out that the xhci_hcd (USB 3.0) kernel driver is broken, and the code is quite crappy (just look at it for
yourself), and results in a lot of "Not enough bandwidth" issues with some of the older PrimeSense/Asus units (as well
as many other devices), when connected to USB 3.0 ports.
The fix is actually pretty simple, and involves using the older, more stable ehci_hcd (USB 2.0) kernel driver instead:
* [optional] if your BIOS has an option for "XHCI Pre-Boot Mode" set it to Disabled. Unfortunately I had to upgrade
the BIOS on my laptop to get the "Disabled" option - I only had "Enabled" and "Auto", so this wouldn't have worked until
February this year when they released a new BIOS for my machine
* compile a new kernel (Ubuntu has the USB 2.0 and 3.0 modules pre-compiled unfortunately - why???) and set both the
xhci_hcd and ehci_hcd drivers as modules
* add a blacklist-xhci_hcd.conf file in /etc/modprobe.d with
* reboot and "modprobe ehci_hcd" at will, or add it to /etc/modules
Re: xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)
This post has NOT been accepted by the mailing list yet.
I have tried this but it doesn't work in my case. I'm using ubuntu 13.04 64bits, I've compiled the kernel 3.8.0 specifying the drivers xhci_hcd and ehci_hcd as modules. I've blacklisted the xhci_hcd and I do "modprobe ehci_hcd" after reboot. The result is that I cannot access the ports USB 3.0 anymore, they are not detected by 'lsusb'. Any suggestion for solving this?
Radu, could you also say which OS and what kernel are you using? Please.
I agreed with you about USB 3.0 and Primesense/ASUS Xtion Live with Ubuntu 12.04
I did the following steps:
step 1: add a blacklist-xhci_hcd.conf file in /etc/modprobe.d with
step 2: reboot and "modprobe ehci_hcd" at will, or add it to /etc/modules
I got the following errors:
"cannot get freq at eq 0x84"
"cannot set freq 44100 to ep 0x84"