diff options
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r-- | drivers/bluetooth/btusb.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 61d8385666e9..21f10cac4fac 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c | |||
@@ -49,7 +49,8 @@ static struct usb_driver btusb_driver; | |||
49 | #define BTUSB_WRONG_SCO_MTU 0x40 | 49 | #define BTUSB_WRONG_SCO_MTU 0x40 |
50 | #define BTUSB_ATH3012 0x80 | 50 | #define BTUSB_ATH3012 0x80 |
51 | #define BTUSB_INTEL 0x100 | 51 | #define BTUSB_INTEL 0x100 |
52 | #define BTUSB_BCM_PATCHRAM 0x200 | 52 | #define BTUSB_INTEL_BOOT 0x200 |
53 | #define BTUSB_BCM_PATCHRAM 0x400 | ||
53 | 54 | ||
54 | static const struct usb_device_id btusb_table[] = { | 55 | static const struct usb_device_id btusb_table[] = { |
55 | /* Generic Bluetooth USB device */ | 56 | /* Generic Bluetooth USB device */ |
@@ -121,6 +122,9 @@ static const struct usb_device_id btusb_table[] = { | |||
121 | /* IMC Networks - Broadcom based */ | 122 | /* IMC Networks - Broadcom based */ |
122 | { USB_VENDOR_AND_INTERFACE_INFO(0x13d3, 0xff, 0x01, 0x01) }, | 123 | { USB_VENDOR_AND_INTERFACE_INFO(0x13d3, 0xff, 0x01, 0x01) }, |
123 | 124 | ||
125 | /* Intel Bluetooth USB Bootloader (RAM module) */ | ||
126 | { USB_DEVICE(0x8087, 0x0a5a), .driver_info = BTUSB_INTEL_BOOT }, | ||
127 | |||
124 | { } /* Terminating entry */ | 128 | { } /* Terminating entry */ |
125 | }; | 129 | }; |
126 | 130 | ||
@@ -1770,6 +1774,9 @@ static int btusb_probe(struct usb_interface *intf, | |||
1770 | hdev->set_bdaddr = btusb_set_bdaddr_intel; | 1774 | hdev->set_bdaddr = btusb_set_bdaddr_intel; |
1771 | } | 1775 | } |
1772 | 1776 | ||
1777 | if (id->driver_info & BTUSB_INTEL_BOOT) | ||
1778 | set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks); | ||
1779 | |||
1773 | /* Interface numbers are hardcoded in the specification */ | 1780 | /* Interface numbers are hardcoded in the specification */ |
1774 | data->isoc = usb_ifnum_to_if(data->udev, 1); | 1781 | data->isoc = usb_ifnum_to_if(data->udev, 1); |
1775 | 1782 | ||