Commit d6e19c36 authored by David S. Miller's avatar David S. Miller

Merge http://linux-mh.bkbits.net/bluetooth-2.6

into nuts.davemloft.net:/disk1/BK/net-2.6
parents e8bc549d f9d4e5b6
...@@ -76,14 +76,15 @@ static struct usb_device_id bluetooth_ids[] = { ...@@ -76,14 +76,15 @@ static struct usb_device_id bluetooth_ids[] = {
/* AVM BlueFRITZ! USB v2.0 */ /* AVM BlueFRITZ! USB v2.0 */
{ USB_DEVICE(0x057c, 0x3800) }, { USB_DEVICE(0x057c, 0x3800) },
/* Ericsson with non-standard id */ /* Bluetooth Ultraport Module from IBM */
{ USB_DEVICE(0x0bdb, 0x1002) }, { USB_DEVICE(0x04bf, 0x030a) },
/* ALPS Module with non-standard id */ /* ALPS Modules with non-standard id */
{ USB_DEVICE(0x044e, 0x3001) },
{ USB_DEVICE(0x044e, 0x3002) }, { USB_DEVICE(0x044e, 0x3002) },
/* Bluetooth Ultraport Module from IBM */ /* Ericsson with non-standard id */
{ USB_DEVICE(0x04bf, 0x030a) }, { USB_DEVICE(0x0bdb, 0x1002) },
{ } /* Terminating entry */ { } /* Terminating entry */
}; };
...@@ -338,26 +339,18 @@ static int hci_usb_flush(struct hci_dev *hdev) ...@@ -338,26 +339,18 @@ static int hci_usb_flush(struct hci_dev *hdev)
BT_DBG("%s", hdev->name); BT_DBG("%s", hdev->name);
for (i=0; i < 4; i++) for (i = 0; i < 4; i++)
skb_queue_purge(&husb->transmit_q[i]); skb_queue_purge(&husb->transmit_q[i]);
return 0; return 0;
} }
static inline void hci_usb_wait_for_urb(struct urb *urb)
{
while (atomic_read(&urb->kref.refcount) > 1) {
current->state = TASK_UNINTERRUPTIBLE;
schedule_timeout((5 * HZ + 999) / 1000);
}
}
static void hci_usb_unlink_urbs(struct hci_usb *husb) static void hci_usb_unlink_urbs(struct hci_usb *husb)
{ {
int i; int i;
BT_DBG("%s", husb->hdev->name); BT_DBG("%s", husb->hdev->name);
for (i=0; i < 4; i++) { for (i = 0; i < 4; i++) {
struct _urb *_urb; struct _urb *_urb;
struct urb *urb; struct urb *urb;
...@@ -366,8 +359,7 @@ static void hci_usb_unlink_urbs(struct hci_usb *husb) ...@@ -366,8 +359,7 @@ static void hci_usb_unlink_urbs(struct hci_usb *husb)
urb = &_urb->urb; urb = &_urb->urb;
BT_DBG("%s unlinking _urb %p type %d urb %p", BT_DBG("%s unlinking _urb %p type %d urb %p",
husb->hdev->name, _urb, _urb->type, urb); husb->hdev->name, _urb, _urb->type, urb);
usb_unlink_urb(urb); usb_kill_urb(urb);
hci_usb_wait_for_urb(urb);
_urb_queue_tail(__completed_q(husb, _urb->type), _urb); _urb_queue_tail(__completed_q(husb, _urb->type), _urb);
} }
......
...@@ -432,7 +432,7 @@ struct inquiry_info_with_rssi { ...@@ -432,7 +432,7 @@ struct inquiry_info_with_rssi {
__u8 pscan_period_mode; __u8 pscan_period_mode;
__u8 dev_class[3]; __u8 dev_class[3];
__u16 clock_offset; __u16 clock_offset;
__u8 rssi; __s8 rssi;
} __attribute__ ((packed)); } __attribute__ ((packed));
#define HCI_EV_CONN_COMPLETE 0x03 #define HCI_EV_CONN_COMPLETE 0x03
......
...@@ -20,6 +20,7 @@ menuconfig BT ...@@ -20,6 +20,7 @@ menuconfig BT
RFCOMM Module (RFCOMM Protocol) RFCOMM Module (RFCOMM Protocol)
BNEP Module (Bluetooth Network Encapsulation Protocol) BNEP Module (Bluetooth Network Encapsulation Protocol)
CMTP Module (CAPI Message Transport Protocol) CMTP Module (CAPI Message Transport Protocol)
HIDP Module (Human Interface Device Protocol)
Say Y here to compile Bluetooth support into the kernel or say M to Say Y here to compile Bluetooth support into the kernel or say M to
compile it as module (bluetooth). compile it as module (bluetooth).
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment