New: Cannot find ath3k bluetooth controller attached on USB
https://bugzilla.kernel.org/show_bug.cgi?id=211013
Bug ID: 211013
Summary: Cannot find ath3k bluetooth controller attached on USB
Product: Drivers
Version: 2.5
Kernel Version: 5.10.x
Hardware: x86-64
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Bluetooth
Assignee: [email protected]
Reporter: [email protected]
Regression: Nobluetoothctl (from bluez 5.55) cannot find the bluetooth controller on my ar5b22 wireless adapter. However /sys/class/bluetooth/hci0 points to the correct device. rfkill would toggle blocking/unblocking state without problem, but bluez won't be able to find the controller regardless.
Steps to reproduce:
1. Boot up the system
2. Run 'bluetoothctl list'. This will print nothing on my system since this ath3012 is the only bluetooth adapter present, but wasn't found.
3. I checked /sys/class/bluetooth/hci0, where the device file pointed to the correct USB device number.
Dmesg excerpt:
[ 11.830504] Bluetooth: Core ver 2.22 [ 11.836192] Bluetooth: HCI device and connection manager initialized [ 11.838836] Bluetooth: HCI socket layer initialized [ 11.841382] Bluetooth: L2CAP socket layer initialized [ 11.843458] Bluetooth: SCO socket layer initialized [ 11.964674] Bluetooth: hci0: don't support firmware rome 0x11020000 [ 16.815785] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 16.815787] Bluetooth: BNEP filters: protocol multicast [ 16.815794] Bluetooth: BNEP socket layer initialized
The specific piece of hardware from lsusb and lspci:
Bus 001 Device 002: ID 13d3:3395 IMC Networks
23:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network
Adapter (rev 01)
Notably this issue is not present on kernel 5.9.x and looks very similar to bug ID 199271. A regression?
Signature · 4 lines
You may reply to this email to add a comment. You are receiving this mail because: You are the assignee for the bug.
[Bug 211013] Cannot find ath3k bluetooth controller attached on USB
https://bugzilla.kernel.org/show_bug.cgi?id=211013
--- Comment #1 from Tianhao Chai ([email protected]) --- Apparently this ver_rom 0x11020000 has never been recorded in qca_devices_table[] defined in btusb.c.
Before 5.10 (i.e. 5.9.x and possibly earlier), the function btusb_setup_qca() will short circuit and return 0 before querying the device table (the following from 5.9.16, btusb.c:3627):
ver_rom = le32_to_cpu(ver.rom_version);
/* Don't care about high ROM versions */
if (ver_rom & ~0xffffU)
return 0;Since this check is removed in 5.10.x due to added support of WCN6855 (which has a high ROM version), the driver would return -ENODEV as this 0x11020000 doesn't exist in qca_devices_table in the first place.
I am not sure how this should be resolved. We could check whether ver_rom == 0x11020000 and directly return 0 (and the card would work after that), but I think this is a very dirty approach.
Signature · 4 lines
You may reply to this email to add a comment. You are receiving this mail because: You are the assignee for the bug.