Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
This commit is contained in:
commit
485f2b7f5f
5 changed files with 12 additions and 8 deletions
|
@ -67,6 +67,7 @@ static struct usb_device_id ath3k_table[] = {
|
||||||
{ USB_DEVICE(0x13d3, 0x3304) },
|
{ USB_DEVICE(0x13d3, 0x3304) },
|
||||||
{ USB_DEVICE(0x0930, 0x0215) },
|
{ USB_DEVICE(0x0930, 0x0215) },
|
||||||
{ USB_DEVICE(0x0489, 0xE03D) },
|
{ USB_DEVICE(0x0489, 0xE03D) },
|
||||||
|
{ USB_DEVICE(0x0489, 0xE027) },
|
||||||
|
|
||||||
/* Atheros AR9285 Malbec with sflash firmware */
|
/* Atheros AR9285 Malbec with sflash firmware */
|
||||||
{ USB_DEVICE(0x03F0, 0x311D) },
|
{ USB_DEVICE(0x03F0, 0x311D) },
|
||||||
|
|
|
@ -124,6 +124,7 @@ static struct usb_device_id blacklist_table[] = {
|
||||||
{ USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE },
|
{ USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE },
|
||||||
{ USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE },
|
{ USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE },
|
||||||
{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
|
{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
|
||||||
|
{ USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE },
|
||||||
|
|
||||||
/* Atheros AR9285 Malbec with sflash firmware */
|
/* Atheros AR9285 Malbec with sflash firmware */
|
||||||
{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },
|
{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },
|
||||||
|
|
|
@ -1754,11 +1754,11 @@ int hci_register_dev(struct hci_dev *hdev)
|
||||||
if (hdev->dev_type != HCI_AMP)
|
if (hdev->dev_type != HCI_AMP)
|
||||||
set_bit(HCI_AUTO_OFF, &hdev->dev_flags);
|
set_bit(HCI_AUTO_OFF, &hdev->dev_flags);
|
||||||
|
|
||||||
schedule_work(&hdev->power_on);
|
|
||||||
|
|
||||||
hci_notify(hdev, HCI_DEV_REG);
|
hci_notify(hdev, HCI_DEV_REG);
|
||||||
hci_dev_hold(hdev);
|
hci_dev_hold(hdev);
|
||||||
|
|
||||||
|
schedule_work(&hdev->power_on);
|
||||||
|
|
||||||
return id;
|
return id;
|
||||||
|
|
||||||
err_wqueue:
|
err_wqueue:
|
||||||
|
|
|
@ -326,7 +326,7 @@ static int read_index_list(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||||
struct hci_dev *d;
|
struct hci_dev *d;
|
||||||
size_t rp_len;
|
size_t rp_len;
|
||||||
u16 count;
|
u16 count;
|
||||||
int i, err;
|
int err;
|
||||||
|
|
||||||
BT_DBG("sock %p", sk);
|
BT_DBG("sock %p", sk);
|
||||||
|
|
||||||
|
@ -347,9 +347,7 @@ static int read_index_list(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
rp->num_controllers = cpu_to_le16(count);
|
count = 0;
|
||||||
|
|
||||||
i = 0;
|
|
||||||
list_for_each_entry(d, &hci_dev_list, list) {
|
list_for_each_entry(d, &hci_dev_list, list) {
|
||||||
if (test_bit(HCI_SETUP, &d->dev_flags))
|
if (test_bit(HCI_SETUP, &d->dev_flags))
|
||||||
continue;
|
continue;
|
||||||
|
@ -357,10 +355,13 @@ static int read_index_list(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||||
if (!mgmt_valid_hdev(d))
|
if (!mgmt_valid_hdev(d))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
rp->index[i++] = cpu_to_le16(d->id);
|
rp->index[count++] = cpu_to_le16(d->id);
|
||||||
BT_DBG("Added hci%u", d->id);
|
BT_DBG("Added hci%u", d->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rp->num_controllers = cpu_to_le16(count);
|
||||||
|
rp_len = sizeof(*rp) + (2 * count);
|
||||||
|
|
||||||
read_unlock(&hci_dev_list_lock);
|
read_unlock(&hci_dev_list_lock);
|
||||||
|
|
||||||
err = cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_INDEX_LIST, 0, rp,
|
err = cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_INDEX_LIST, 0, rp,
|
||||||
|
@ -1366,6 +1367,7 @@ static int remove_uuid(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
list_del(&match->list);
|
list_del(&match->list);
|
||||||
|
kfree(match);
|
||||||
found++;
|
found++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -267,7 +267,7 @@ static void smp_failure(struct l2cap_conn *conn, u8 reason, u8 send)
|
||||||
|
|
||||||
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->hcon->flags);
|
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->hcon->flags);
|
||||||
mgmt_auth_failed(conn->hcon->hdev, conn->dst, hcon->type,
|
mgmt_auth_failed(conn->hcon->hdev, conn->dst, hcon->type,
|
||||||
hcon->dst_type, reason);
|
hcon->dst_type, HCI_ERROR_AUTH_FAILURE);
|
||||||
|
|
||||||
cancel_delayed_work_sync(&conn->security_timer);
|
cancel_delayed_work_sync(&conn->security_timer);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue