patch-2.4.27 linux-2.4.27/drivers/bluetooth/hci_usb.c
Next file: linux-2.4.27/drivers/bluetooth/hci_usb.h
Previous file: linux-2.4.27/drivers/bluetooth/hci_uart.h
Back to the patch index
Back to the overall index
- Lines: 79
- Date:
2004-08-07 16:26:04.687348133 -0700
- Orig file:
linux-2.4.26/drivers/bluetooth/hci_usb.c
- Orig date:
2004-04-14 06:05:29.000000000 -0700
diff -urN linux-2.4.26/drivers/bluetooth/hci_usb.c linux-2.4.27/drivers/bluetooth/hci_usb.c
@@ -30,7 +30,7 @@
*
* $Id: hci_usb.c,v 1.8 2002/07/18 17:23:09 maxk Exp $
*/
-#define VERSION "2.5"
+#define VERSION "2.7"
#include <linux/config.h>
#include <linux/module.h>
@@ -76,14 +76,15 @@
/* AVM BlueFRITZ! USB v2.0 */
{ USB_DEVICE(0x057c, 0x3800) },
- /* Ericsson with non-standard id */
- { USB_DEVICE(0x0bdb, 0x1002) },
+ /* Bluetooth Ultraport Module from IBM */
+ { USB_DEVICE(0x04bf, 0x030a) },
- /* ALPS Module with non-standard id */
+ /* ALPS Modules with non-standard id */
+ { USB_DEVICE(0x044e, 0x3001) },
{ USB_DEVICE(0x044e, 0x3002) },
- /* Bluetooth Ultraport Module from IBM */
- { USB_DEVICE(0x04bf, 0x030a) },
+ /* Ericsson with non-standard id */
+ { USB_DEVICE(0x0bdb, 0x1002) },
{ } /* Terminating entry */
};
@@ -97,9 +98,15 @@
/* Broadcom BCM2035 */
{ USB_DEVICE(0x0a5c, 0x200a), driver_info: HCI_RESET },
+ /* ISSC Bluetooth Adapter v3.1 */
+ { USB_DEVICE(0x1131, 0x1001), driver_info: HCI_RESET },
+
/* Digianswer device */
{ USB_DEVICE(0x08fd, 0x0001), driver_info: HCI_DIGIANSWER },
+ /* RTX Telecom based adapter with buggy SCO support */
+ { USB_DEVICE(0x0400, 0x0807), driver_info: HCI_BROKEN_ISOC },
+
{ } /* Terminating entry */
};
@@ -699,11 +706,11 @@
BT_DBG("%s urb %p type %d status %d count %d flags %x", hdev->name, urb,
_urb->type, urb->status, count, urb->transfer_flags);
- if (!test_bit(HCI_RUNNING, &hdev->flags))
- return;
-
read_lock(&husb->completion_lock);
+ if (!test_bit(HCI_RUNNING, &hdev->flags))
+ goto unlock;
+
if (urb->status || !count)
goto resubmit;
@@ -740,6 +747,8 @@
BT_DBG("%s urb %p type %d resubmit status %d", hdev->name, urb,
_urb->type, err);
}
+
+unlock:
read_unlock(&husb->completion_lock);
}
@@ -876,7 +885,7 @@
}
#ifdef CONFIG_BLUEZ_HCIUSB_SCO
- if (!isoc_in_ep[1] || !isoc_out_ep[1]) {
+ if (id->driver_info & HCI_BROKEN_ISOC || !isoc_in_ep[1] || !isoc_out_ep[1]) {
BT_DBG("Isoc endpoints not found");
isoc_iface = NULL;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)