|
@@ -60,6 +60,7 @@ static struct usb_driver btusb_driver;
|
|
#define BTUSB_QCA_ROME 0x8000
|
|
#define BTUSB_QCA_ROME 0x8000
|
|
#define BTUSB_BCM_APPLE 0x10000
|
|
#define BTUSB_BCM_APPLE 0x10000
|
|
#define BTUSB_REALTEK 0x20000
|
|
#define BTUSB_REALTEK 0x20000
|
|
|
|
+#define BTUSB_BCM2045 0x40000
|
|
|
|
|
|
static const struct usb_device_id btusb_table[] = {
|
|
static const struct usb_device_id btusb_table[] = {
|
|
/* Generic Bluetooth USB device */
|
|
/* Generic Bluetooth USB device */
|
|
@@ -164,6 +165,9 @@ static const struct usb_device_id blacklist_table[] = {
|
|
/* Broadcom BCM2033 without firmware */
|
|
/* Broadcom BCM2033 without firmware */
|
|
{ USB_DEVICE(0x0a5c, 0x2033), .driver_info = BTUSB_IGNORE },
|
|
{ USB_DEVICE(0x0a5c, 0x2033), .driver_info = BTUSB_IGNORE },
|
|
|
|
|
|
|
|
+ /* Broadcom BCM2045 devices */
|
|
|
|
+ { USB_DEVICE(0x0a5c, 0x2045), .driver_info = BTUSB_BCM2045 },
|
|
|
|
+
|
|
/* Atheros 3011 with sflash firmware */
|
|
/* Atheros 3011 with sflash firmware */
|
|
{ USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE },
|
|
{ USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE },
|
|
{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
|
|
{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
|
|
@@ -2857,6 +2861,9 @@ static int btusb_probe(struct usb_interface *intf,
|
|
hdev->send = btusb_send_frame;
|
|
hdev->send = btusb_send_frame;
|
|
hdev->notify = btusb_notify;
|
|
hdev->notify = btusb_notify;
|
|
|
|
|
|
|
|
+ if (id->driver_info & BTUSB_BCM2045)
|
|
|
|
+ set_bit(HCI_QUIRK_BROKEN_STORED_LINK_KEY, &hdev->quirks);
|
|
|
|
+
|
|
if (id->driver_info & BTUSB_BCM92035)
|
|
if (id->driver_info & BTUSB_BCM92035)
|
|
hdev->setup = btusb_setup_bcm92035;
|
|
hdev->setup = btusb_setup_bcm92035;
|
|
|
|
|