Bluetooth: btusb: Adding support for LE scatternet to Jfp and ThP
authorAlain Michaud <alainm@chromium.org>
Thu, 23 Apr 2020 14:43:31 +0000 (14:43 +0000)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 28 Apr 2020 09:49:12 +0000 (11:49 +0200)
This change adds support for LE scatternet connections to Intel's JfP
and ThP controllers.

Signed-off-by: Alain Michaud <alainm@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btusb.c

index 9a0ac333c88651b8cfc1a31d99947d34cc679412..8ae3ad7a60131b53368e4cfb9cd63cc05418b68c 100644 (file)
@@ -336,7 +336,8 @@ static const struct usb_device_id blacklist_table[] = {
 
        /* Intel Bluetooth devices */
        { USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_NEW |
-                                                    BTUSB_WIDEBAND_SPEECH },
+                                                    BTUSB_WIDEBAND_SPEECH |
+                                                    BTUSB_VALID_LE_STATES },
        { USB_DEVICE(0x8087, 0x0026), .driver_info = BTUSB_INTEL_NEW |
                                                     BTUSB_WIDEBAND_SPEECH },
        { USB_DEVICE(0x8087, 0x0029), .driver_info = BTUSB_INTEL_NEW |
@@ -349,7 +350,8 @@ static const struct usb_device_id blacklist_table[] = {
        { USB_DEVICE(0x8087, 0x0aa7), .driver_info = BTUSB_INTEL |
                                                     BTUSB_WIDEBAND_SPEECH },
        { USB_DEVICE(0x8087, 0x0aaa), .driver_info = BTUSB_INTEL_NEW |
-                                                    BTUSB_WIDEBAND_SPEECH },
+                                                    BTUSB_WIDEBAND_SPEECH |
+                                                    BTUSB_VALID_LE_STATES },
 
        /* Other Intel Bluetooth devices */
        { USB_VENDOR_AND_INTERFACE_INFO(0x8087, 0xe0, 0x01, 0x01),
@@ -3973,6 +3975,9 @@ static int btusb_probe(struct usb_interface *intf,
        if (id->driver_info & BTUSB_WIDEBAND_SPEECH)
                set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
 
+       if (id->driver_info & BTUSB_VALID_LE_STATES)
+               set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
+
        if (id->driver_info & BTUSB_DIGIANSWER) {
                data->cmdreq_type = USB_TYPE_VENDOR;
                set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);