[PATCH] Bluetooth: btusb: Add ID 0b05:1825 for ASUS QCA ROME adapter
Edgard Lopes <[email protected]>
| Newsgroups | org.kernel.vger.linux-bluetooth |
|---|---|
| Message-ID | <CACUvvBVT=iVA4GjCHOwxdD9R6ukVmdM-mfr0u9NBfua1cBsUNA@mail.gmail.com> |
The Bluetooth radio of the ASUS combo WiFi/BT card based on QCA6174
(e.g. bundled with ASUS motherboards / PCE-AC55BT) is a QCA ROME
device rebranded under the ASUS vendor ID:
idVendor=0x0b05, idProduct=0x1825, bcdDevice=0.01
bDeviceClass=e0 Sub=01 Prot=01 (full speed, MxPS=64)
Both interfaces Cls=e0(wlcon) Sub=01 Prot=01, driven by btusb
Without the quirk, btusb treats it as a generic adapter and never
loads the QCA rampatch firmware, leaving the device running its bare
ROM firmware. In that state SCO/eSCO audio is broken: the controller
delivers malformed packets which the kernel drops ("Bluetooth: hci0:
corrupted SCO packet"), so HFP/HSP microphone input never works, and
the kernel also logs "unexpected event for opcode 0x2005" during LE
operations.
With this entry the device is set up as QCA ROME:
Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00000302.bin
Bluetooth: hci0: QCA: patch rome 0x302 build 0x3e8, firmware rome
0x302 build 0x111
Bluetooth: hci0: using NVM file: qca/nvm_usb_00000302.bin
after which eSCO audio works in both directions with zero errors
(verified with HFP against JBL Live 770NC and other headsets).
The driver_info flags match the sibling QCA6174 entry 0cf3:e300.
Signed-off-by: Edgard Lopes Voos <[email protected]>
---
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -259,6 +259,8 @@
{ USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_ATH3012 },
/* QCA ROME chipset */
+ { USB_DEVICE(0x0b05, 0x1825), .driver_info = BTUSB_QCA_ROME |
+ BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x0cf3, 0x535b), .driver_info = BTUSB_QCA_ROME |
BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x0cf3, 0xe007), .driver_info = BTUSB_QCA_ROME |