diff options
Diffstat (limited to 'drivers/bluetooth/hci_usb.c')
| -rw-r--r-- | drivers/bluetooth/hci_usb.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/bluetooth/hci_usb.c b/drivers/bluetooth/hci_usb.c index 67d96b5cbb96..57c48bbf6fe6 100644 --- a/drivers/bluetooth/hci_usb.c +++ b/drivers/bluetooth/hci_usb.c | |||
| @@ -65,13 +65,15 @@ | |||
| 65 | #endif | 65 | #endif |
| 66 | 66 | ||
| 67 | static int ignore = 0; | 67 | static int ignore = 0; |
| 68 | static int ignore_csr = 0; | ||
| 69 | static int ignore_sniffer = 0; | ||
| 68 | static int reset = 0; | 70 | static int reset = 0; |
| 69 | 71 | ||
| 70 | #ifdef CONFIG_BT_HCIUSB_SCO | 72 | #ifdef CONFIG_BT_HCIUSB_SCO |
| 71 | static int isoc = 2; | 73 | static int isoc = 2; |
| 72 | #endif | 74 | #endif |
| 73 | 75 | ||
| 74 | #define VERSION "2.8" | 76 | #define VERSION "2.9" |
| 75 | 77 | ||
| 76 | static struct usb_driver hci_usb_driver; | 78 | static struct usb_driver hci_usb_driver; |
| 77 | 79 | ||
| @@ -98,6 +100,9 @@ static struct usb_device_id bluetooth_ids[] = { | |||
| 98 | MODULE_DEVICE_TABLE (usb, bluetooth_ids); | 100 | MODULE_DEVICE_TABLE (usb, bluetooth_ids); |
| 99 | 101 | ||
| 100 | static struct usb_device_id blacklist_ids[] = { | 102 | static struct usb_device_id blacklist_ids[] = { |
| 103 | /* CSR BlueCore devices */ | ||
| 104 | { USB_DEVICE(0x0a12, 0x0001), .driver_info = HCI_CSR }, | ||
| 105 | |||
| 101 | /* Broadcom BCM2033 without firmware */ | 106 | /* Broadcom BCM2033 without firmware */ |
| 102 | { USB_DEVICE(0x0a5c, 0x2033), .driver_info = HCI_IGNORE }, | 107 | { USB_DEVICE(0x0a5c, 0x2033), .driver_info = HCI_IGNORE }, |
| 103 | 108 | ||
| @@ -836,6 +841,12 @@ static int hci_usb_probe(struct usb_interface *intf, const struct usb_device_id | |||
| 836 | if (ignore || id->driver_info & HCI_IGNORE) | 841 | if (ignore || id->driver_info & HCI_IGNORE) |
| 837 | return -ENODEV; | 842 | return -ENODEV; |
| 838 | 843 | ||
| 844 | if (ignore_csr && id->driver_info & HCI_CSR) | ||
| 845 | return -ENODEV; | ||
| 846 | |||
| 847 | if (ignore_sniffer && id->driver_info & HCI_SNIFFER) | ||
| 848 | return -ENODEV; | ||
| 849 | |||
| 839 | if (intf->cur_altsetting->desc.bInterfaceNumber > 0) | 850 | if (intf->cur_altsetting->desc.bInterfaceNumber > 0) |
| 840 | return -ENODEV; | 851 | return -ENODEV; |
| 841 | 852 | ||
| @@ -1061,6 +1072,12 @@ module_exit(hci_usb_exit); | |||
| 1061 | module_param(ignore, bool, 0644); | 1072 | module_param(ignore, bool, 0644); |
| 1062 | MODULE_PARM_DESC(ignore, "Ignore devices from the matching table"); | 1073 | MODULE_PARM_DESC(ignore, "Ignore devices from the matching table"); |
| 1063 | 1074 | ||
| 1075 | module_param(ignore_csr, bool, 0644); | ||
| 1076 | MODULE_PARM_DESC(ignore_csr, "Ignore devices with id 0a12:0001"); | ||
| 1077 | |||
| 1078 | module_param(ignore_sniffer, bool, 0644); | ||
| 1079 | MODULE_PARM_DESC(ignore_sniffer, "Ignore devices with id 0a12:0002"); | ||
| 1080 | |||
| 1064 | module_param(reset, bool, 0644); | 1081 | module_param(reset, bool, 0644); |
| 1065 | MODULE_PARM_DESC(reset, "Send HCI reset command on initialization"); | 1082 | MODULE_PARM_DESC(reset, "Send HCI reset command on initialization"); |
| 1066 | 1083 | ||
