[Bug 79331] New: Bluetooth device AR3012 [0cf3:e005] sometimes can't work on XHCI host controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=79331

            Bug ID: 79331
           Summary: Bluetooth device AR3012 [0cf3:e005] sometimes can't
                    work on XHCI host controller
           Product: Drivers
           Version: 2.5
    Kernel Version: v3.16-rc2
          Hardware: x86-64
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Bluetooth
          Assignee: linux-bluetooth@xxxxxxxxxxxxxxx
          Reporter: gavin.guo@xxxxxxxxxxxxx
                CC: gustavo@xxxxxxxxxxx, johan.hedberg@xxxxxxxxx,
                    marcel@xxxxxxxxxxxx, sarah.a.sharp@xxxxxxxxxxxxxxx
        Regression: No

Created attachment 141601
  --> https://bugzilla.kernel.org/attachment.cgi?id=141601&action=edit
dmesg

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

-- 
You are receiving this mail because:
You are the assignee for the bug.
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux