Hi all, On Mon, Jun 30, 2014 at 10:38 AM, Gavin Guo <gavin.guo@xxxxxxxxxxxxx> wrote: > Hi all, > > Recently, I found that the AR3012 bluetooth sometimes can't work with the > 00:14.0 USB controller [0c03]: Intel Corporation Lynx Point USB xHCI > Host Controller [8086:8c31] (rev 05). > > The dmesg is attached, and following is how I tested: > > The port which AR3012 uses on the platform is default routed to XHCI > controller. So, when booting up the machine, I found those messages in > dmesg: > > [ 18.128566] Bluetooth: Error in firmware loading err = -110,len = > 448, size = 4096 > [ 18.128574] Bluetooth: Loading patch file failed > [ 18.128583] ath3k: probe of 3-6:1.0 failed with error -110 > > Obviously, there is firmware loading error with the XHCI host > controller, and there are also XHCI debugging messages showing before > these ones. Because we found that the AR3012 works fine with EHCI host > controller, so we wrote a module, xhci_quirk, to change the port to > bind to EHCI host controller, which changes the USB_INTEL_XUSB2PR > register. After insmoding the xhci_quirk module, we see the following > lines: > > [ 199.248468] xhci_quirk: module verification failed: signature > and/or required key missing - tainting kernel > [ 199.255687] old = 0x3fff, new = 0x3cdf > [ 199.255689] Planted return probe at usb_enable_intel_xhci_ports: > ffffffff815950c0 > > After that the port disconnected from the XHCI host controller, and > then the AR3012 is attached to the EHCI host controller: > > [ 199.936571] usb 1-1.2: new full-speed USB device number 4 using ehci-pci > [ 215.026596] usb 1-1.2: device descriptor read/64, error -110 > [ 230.220811] usb 1-1.2: device descriptor read/64, error -110 > [ 230.396975] usb 1-1.2: new full-speed USB device number 5 using ehci-pci > [ 235.495101] usb 1-1.2: unable to read config index 0 descriptor/all > [ 235.495105] usb 1-1.2: can't read configurations, error -110 > [ 235.571216] usb 1-1.2: new full-speed USB device number 6 using ehci-pci > [ 235.592617] usb 1-1.2: New USB device found, idVendor=0cf3, idProduct=e005 > [ 235.592621] usb 1-1.2: New USB device strings: Mfr=0, Product=0, > SerialNumber=0 > [ 235.705440] usb 1-1.2: USB disconnect, device number 6 > [ 235.903613] usb 1-1.2: new full-speed USB device number 7 using ehci-pci > [ 241.002841] usb 1-1.2: New USB device found, idVendor=0cf3, idProduct=e005 > [ 241.002844] usb 1-1.2: New USB device strings: Mfr=0, Product=0, > SerialNumber=0 > > After a while, the Bluetooth icon shows up in the right-upper corner > (Ubuntu 12.04). I can use normal Bluetooth operations such as file > transfer, headset, and mouse. > > Next, I did an experiment to remove the xhci_quirk module and the port > will be routed to the XHCI host controller again. And something > strange happened, I found that the Bluetooth device AR3012 _WORKS_ on > XHCI host controller. > > Summary: > * The ath3k.c firwmare loading error doesn't always happen on the XHCI > host controller, it succeed sometimes. After the successful loading > firmware, AR3012 works fine. > > * After sucessful loading the firmware through the EHCI controller, I > found that the firmware status still remained and can work with XHCI > host controller through dynamic changing the port routing. > > If there is any restriction that Bluetooth device AR3012 can't work on > XHCI host controller? > > Thanks, > Gavin Guo Add Mathias and Dan to the list, Mathias is now the XHCI driver maintainer. -- 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