Bluetooth: btqca: Enable MSFT extension for Qualcomm WCN399x
authorMiao-chen Chou <mcchou@chromium.org>
Thu, 17 Dec 2020 22:53:17 +0000 (14:53 -0800)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 18 Dec 2020 21:33:39 +0000 (22:33 +0100)
The following Qualcomm WCN399x Bluetooth controllers support the
Microsoft vendor extension and they are using 0xFD70 for VsMsftOpCode.
-WCN3990
-WCN3991
-WCN3998

< HCI Command: ogf 0x3f, ocf 0x0170, plen 1
  00
> HCI Event: 0x0e plen 18
  01 70 FD 00 00 1F 00 00 00 00 00 00 00 04 4D 53 46 54

The following test step was performed.
- Boot the device with WCN3991 and verify INFO print in dmesg.

Signed-off-by: Miao-chen Chou <mcchou@chromium.org>
Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Reviewed-by: Archie Pusaka <apusaka@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btqca.c

index f6256a3..25114f0 100644 (file)
@@ -564,6 +564,19 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
                        return err;
        }
 
+       /* WCN399x supports the Microsoft vendor extension with 0xFD70 as the
+        * VsMsftOpCode.
+        */
+       switch (soc_type) {
+       case QCA_WCN3990:
+       case QCA_WCN3991:
+       case QCA_WCN3998:
+               hci_set_msft_opcode(hdev, 0xFD70);
+               break;
+       default:
+               break;
+       }
+
        /* Perform HCI reset */
        err = qca_send_reset(hdev);
        if (err < 0) {