Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0915e886 authored by Marcel Holtmann's avatar Marcel Holtmann
Browse files

[Bluetooth] Add ignore parameters to the HCI USB driver



This patch adds the module parameters ignore_csr and ignore_sniffer
to the HCI USB driver. This allows an easier use of CSR ROM chips
that need an additional initialization routine and the Frontline
sniffers.

Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 354d28d5
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -65,13 +65,15 @@
#endif

static int ignore = 0;
static int ignore_csr = 0;
static int ignore_sniffer = 0;
static int reset = 0;

#ifdef CONFIG_BT_HCIUSB_SCO
static int isoc = 2;
#endif

#define VERSION "2.8"
#define VERSION "2.9"

static struct usb_driver hci_usb_driver; 

@@ -98,6 +100,9 @@ static struct usb_device_id bluetooth_ids[] = {
MODULE_DEVICE_TABLE (usb, bluetooth_ids);

static struct usb_device_id blacklist_ids[] = {
	/* CSR BlueCore devices */
	{ USB_DEVICE(0x0a12, 0x0001), .driver_info = HCI_CSR },

	/* Broadcom BCM2033 without firmware */
	{ USB_DEVICE(0x0a5c, 0x2033), .driver_info = HCI_IGNORE },

@@ -836,6 +841,12 @@ static int hci_usb_probe(struct usb_interface *intf, const struct usb_device_id
	if (ignore || id->driver_info & HCI_IGNORE)
		return -ENODEV;

	if (ignore_csr && id->driver_info & HCI_CSR)
		return -ENODEV;

	if (ignore_sniffer && id->driver_info & HCI_SNIFFER)
		return -ENODEV;

	if (intf->cur_altsetting->desc.bInterfaceNumber > 0)
		return -ENODEV;

@@ -1061,6 +1072,12 @@ module_exit(hci_usb_exit);
module_param(ignore, bool, 0644);
MODULE_PARM_DESC(ignore, "Ignore devices from the matching table");

module_param(ignore_csr, bool, 0644);
MODULE_PARM_DESC(ignore_csr, "Ignore devices with id 0a12:0001");

module_param(ignore_sniffer, bool, 0644);
MODULE_PARM_DESC(ignore_sniffer, "Ignore devices with id 0a12:0002");

module_param(reset, bool, 0644);
MODULE_PARM_DESC(reset, "Send HCI reset command on initialization");

+3 −2
Original line number Diff line number Diff line
@@ -31,9 +31,10 @@
#define HCI_IGNORE		0x01
#define HCI_RESET		0x02
#define HCI_DIGIANSWER		0x04
#define HCI_SNIFFER		0x08
#define HCI_BROKEN_ISOC		0x10
#define HCI_CSR			0x08
#define HCI_SNIFFER		0x10
#define HCI_BCM92035		0x20
#define HCI_BROKEN_ISOC		0x40

#define HCI_MAX_IFACE_NUM	3