Bluetooth: btusb: Set HCI_QUIRK_BROKEN_ERR_DATA_REPORTING for QCA
authorZijun Hu <quic_zijuhu@quicinc.com>
Wed, 27 Apr 2022 02:16:51 +0000 (10:16 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 13 May 2022 11:05:49 +0000 (13:05 +0200)
Set HCI_QUIRK_BROKEN_ERR_DATA_REPORTING for QCA controllers since
they answer HCI_OP_READ_DEF_ERR_DATA_REPORTING with error code
"UNKNOWN HCI COMMAND" as shown below:

[  580.517552] Bluetooth: hci0: unexpected cc 0x0c5a length: 1 < 2
[  580.517660] Bluetooth: hci0: Opcode 0x c5a failed: -38

hcitool -i hci0 cmd 0x03 0x5a
< HCI Command: ogf 0x03, ocf 0x005a, plen 0
> HCI Event: 0x0e plen 4
  01 5A 0C 01

btmon log:
< HCI Command: Read Default Erroneous Data Reporting (0x03|0x005a) plen 0
> HCI Event: Command Complete (0x0e) plen 4
      Read Default Erroneous Data Reporting (0x03|0x005a) ncmd 1
        Status: Unknown HCI Command (0x01)

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btusb.c

index e6e28d3d1683e89a94839c6e09124e2b8abe9b7a..1ec7a731c89efa8c52139a2e4a6a02c1b33480ac 100644 (file)
@@ -3345,6 +3345,7 @@ static int btusb_setup_qca(struct hci_dev *hdev)
         * work with the likes of HSP/HFP mSBC.
         */
        set_bit(HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN, &hdev->quirks);
+       set_bit(HCI_QUIRK_BROKEN_ERR_DATA_REPORTING, &hdev->quirks);
 
        return 0;
 }