|
@@ -49,7 +49,8 @@ static struct usb_driver btusb_driver;
|
|
|
#define BTUSB_WRONG_SCO_MTU 0x40
|
|
|
#define BTUSB_ATH3012 0x80
|
|
|
#define BTUSB_INTEL 0x100
|
|
|
-#define BTUSB_BCM_PATCHRAM 0x200
|
|
|
+#define BTUSB_INTEL_BOOT 0x200
|
|
|
+#define BTUSB_BCM_PATCHRAM 0x400
|
|
|
|
|
|
static const struct usb_device_id btusb_table[] = {
|
|
|
/* Generic Bluetooth USB device */
|
|
@@ -121,6 +122,9 @@ static const struct usb_device_id btusb_table[] = {
|
|
|
/* IMC Networks - Broadcom based */
|
|
|
{ USB_VENDOR_AND_INTERFACE_INFO(0x13d3, 0xff, 0x01, 0x01) },
|
|
|
|
|
|
+ /* Intel Bluetooth USB Bootloader (RAM module) */
|
|
|
+ { USB_DEVICE(0x8087, 0x0a5a), .driver_info = BTUSB_INTEL_BOOT },
|
|
|
+
|
|
|
{ } /* Terminating entry */
|
|
|
};
|
|
|
|
|
@@ -1770,6 +1774,9 @@ static int btusb_probe(struct usb_interface *intf,
|
|
|
hdev->set_bdaddr = btusb_set_bdaddr_intel;
|
|
|
}
|
|
|
|
|
|
+ if (id->driver_info & BTUSB_INTEL_BOOT)
|
|
|
+ set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
|
|
|
+
|
|
|
/* Interface numbers are hardcoded in the specification */
|
|
|
data->isoc = usb_ifnum_to_if(data->udev, 1);
|
|
|
|