[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 |
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.