From: Chethan T N <chethan.tumkur.narayan@xxxxxxxxx> The Intel TyphoonPeak, GarfieldPeak and Qualcomm WCN6855 Bluetooth controllers support the Microsoft vendor extension, enable them by setting VsMsftOpCode accordingly. Signed-off-by: Chethan T N <chethan.tumkur.narayan@xxxxxxxxx> Signed-off-by: Michael Sun <michaelfsun@xxxxxxxxxx> --- drivers/bluetooth/btusb.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 5f8d9b1628af..b68511b7e07a 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -3016,6 +3016,17 @@ static int btusb_setup_intel_newgen(struct hci_dev *hdev) btintel_version_info_tlv(hdev, &version); finish: + /* All Intel new genration controllers support the Microsoft vendor + * extension are using 0xFC1E for VsMsftOpCode. + */ + switch (INTEL_HW_VARIANT(version.cnvi_bt)) { + case 0x17: + case 0x18: + case 0x19: + hci_set_msft_opcode(hdev, 0xFC1E); + break; + } + /* Set the event mask for Intel specific vendor events. This enables * a few extra events that are useful during general operation. It * does not enable any debugging related events. @@ -4710,6 +4721,7 @@ static int btusb_probe(struct usb_interface *intf, hdev->set_bdaddr = btusb_set_bdaddr_wcn6855; hdev->cmd_timeout = btusb_qca_cmd_timeout; set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks); + hci_set_msft_opcode(hdev, 0xFD70); } if (id->driver_info & BTUSB_AMP) { -- 2.32.0.432.gabb21c7263-goog