]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/bluetooth/hci_usb.c
[MIPS] TXx9: Kconfig cleanup
[linux-2.6-omap-h63xx.git] / drivers / bluetooth / hci_usb.c
index 372c7ef633dab53471c5d3e0dda7ac4dc49fdeff..192522ebb771926e4fec2cfabc595869f6cd4bed 100644 (file)
 #define URB_ZERO_PACKET 0
 #endif
 
-static int ignore = 0;
-static int ignore_dga = 0;
-static int ignore_csr = 0;
-static int ignore_sniffer = 0;
-static int disable_scofix = 0;
-static int force_scofix = 0;
-static int reset = 0;
+static int ignore;
+static int ignore_dga;
+static int ignore_csr;
+static int ignore_sniffer;
+static int disable_scofix;
+static int force_scofix;
+static int reset;
 
 #ifdef CONFIG_BT_HCIUSB_SCO
 static int isoc = 2;
@@ -116,6 +116,7 @@ static struct usb_device_id blacklist_ids[] = {
        { USB_DEVICE(0x0a5c, 0x2009), .driver_info = HCI_BCM92035 },
 
        /* Broadcom BCM2045 */
+       { USB_DEVICE(0x0a5c, 0x2039), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
        { USB_DEVICE(0x0a5c, 0x2101), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
 
        /* IBM/Lenovo ThinkPad with Broadcom chip */
@@ -148,6 +149,9 @@ static struct usb_device_id blacklist_ids[] = {
        { USB_DEVICE(0x0400, 0x0807), .driver_info = HCI_BROKEN_ISOC },
        { USB_DEVICE(0x0400, 0x080a), .driver_info = HCI_BROKEN_ISOC },
 
+       /* CONWISE Technology based adapters with buggy SCO support */
+       { USB_DEVICE(0x0e5e, 0x6622), .driver_info = HCI_BROKEN_ISOC },
+
        /* Belkin F8T012 and F8T013 devices */
        { USB_DEVICE(0x050d, 0x0012), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
        { USB_DEVICE(0x050d, 0x0013), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
@@ -261,7 +265,7 @@ static int hci_usb_intr_rx_submit(struct hci_usb *husb)
                BT_ERR("%s intr rx submit failed urb %p err %d",
                                husb->hdev->name, urb, err);
                _urb_unlink(_urb);
-               _urb_free(_urb);
+               kfree(_urb);
                kfree(buf);
        }
        return err;
@@ -298,7 +302,7 @@ static int hci_usb_bulk_rx_submit(struct hci_usb *husb)
                BT_ERR("%s bulk rx submit failed urb %p err %d",
                                husb->hdev->name, urb, err);
                _urb_unlink(_urb);
-               _urb_free(_urb);
+               kfree(_urb);
                kfree(buf);
        }
        return err;
@@ -349,7 +353,7 @@ static int hci_usb_isoc_rx_submit(struct hci_usb *husb)
                BT_ERR("%s isoc rx submit failed urb %p err %d",
                                husb->hdev->name, urb, err);
                _urb_unlink(_urb);
-               _urb_free(_urb);
+               kfree(_urb);
                kfree(buf);
        }
        return err;
@@ -427,7 +431,7 @@ static void hci_usb_unlink_urbs(struct hci_usb *husb)
                                        husb->hdev->name, _urb, _urb->type, urb);
                        kfree(urb->setup_packet);
                        kfree(urb->transfer_buffer);
-                       _urb_free(_urb);
+                       kfree(_urb);
                }
        }
 }
@@ -486,7 +490,7 @@ static inline int hci_usb_send_ctrl(struct hci_usb *husb, struct sk_buff *skb)
 
                dr = kmalloc(sizeof(*dr), GFP_ATOMIC);
                if (!dr) {
-                       _urb_free(_urb);
+                       kfree(_urb);
                        return -ENOMEM;
                }
        } else