diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-04-25 08:57:17 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-04-25 08:57:17 -0400 |
commit | 38f3106a9b987c227ef79c7f194f728f4db36136 (patch) | |
tree | e1bdf85248a6e37049998e250fd3558b9a5cde58 | |
parent | ffa216bb5eecfce0f01b0b2a95d5c320dde90005 (diff) | |
parent | 1fb4e09a7e780b915dbd172592ae7e2a4c071065 (diff) |
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
-rw-r--r-- | drivers/bluetooth/ath3k.c | 2 | ||||
-rw-r--r-- | drivers/bluetooth/btusb.c | 5 | ||||
-rw-r--r-- | net/bluetooth/hci_conn.c | 9 | ||||
-rw-r--r-- | net/bluetooth/hci_event.c | 6 |
4 files changed, 16 insertions, 6 deletions
diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c index be571fef185d..a83b57e57b63 100644 --- a/drivers/bluetooth/ath3k.c +++ b/drivers/bluetooth/ath3k.c | |||
@@ -82,6 +82,7 @@ static const struct usb_device_id ath3k_table[] = { | |||
82 | { USB_DEVICE(0x04CA, 0x3004) }, | 82 | { USB_DEVICE(0x04CA, 0x3004) }, |
83 | { USB_DEVICE(0x04CA, 0x3005) }, | 83 | { USB_DEVICE(0x04CA, 0x3005) }, |
84 | { USB_DEVICE(0x04CA, 0x3006) }, | 84 | { USB_DEVICE(0x04CA, 0x3006) }, |
85 | { USB_DEVICE(0x04CA, 0x3007) }, | ||
85 | { USB_DEVICE(0x04CA, 0x3008) }, | 86 | { USB_DEVICE(0x04CA, 0x3008) }, |
86 | { USB_DEVICE(0x04CA, 0x300b) }, | 87 | { USB_DEVICE(0x04CA, 0x300b) }, |
87 | { USB_DEVICE(0x0930, 0x0219) }, | 88 | { USB_DEVICE(0x0930, 0x0219) }, |
@@ -131,6 +132,7 @@ static const struct usb_device_id ath3k_blist_tbl[] = { | |||
131 | { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, | 132 | { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, |
132 | { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, | 133 | { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, |
133 | { USB_DEVICE(0x04ca, 0x3006), .driver_info = BTUSB_ATH3012 }, | 134 | { USB_DEVICE(0x04ca, 0x3006), .driver_info = BTUSB_ATH3012 }, |
135 | { USB_DEVICE(0x04ca, 0x3007), .driver_info = BTUSB_ATH3012 }, | ||
134 | { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 }, | 136 | { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 }, |
135 | { USB_DEVICE(0x04ca, 0x300b), .driver_info = BTUSB_ATH3012 }, | 137 | { USB_DEVICE(0x04ca, 0x300b), .driver_info = BTUSB_ATH3012 }, |
136 | { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, | 138 | { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, |
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index f338b0c5a8de..a7dfbf9a3afb 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c | |||
@@ -152,6 +152,7 @@ static const struct usb_device_id blacklist_table[] = { | |||
152 | { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, | 152 | { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, |
153 | { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, | 153 | { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, |
154 | { USB_DEVICE(0x04ca, 0x3006), .driver_info = BTUSB_ATH3012 }, | 154 | { USB_DEVICE(0x04ca, 0x3006), .driver_info = BTUSB_ATH3012 }, |
155 | { USB_DEVICE(0x04ca, 0x3007), .driver_info = BTUSB_ATH3012 }, | ||
155 | { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 }, | 156 | { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 }, |
156 | { USB_DEVICE(0x04ca, 0x300b), .driver_info = BTUSB_ATH3012 }, | 157 | { USB_DEVICE(0x04ca, 0x300b), .driver_info = BTUSB_ATH3012 }, |
157 | { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, | 158 | { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, |
@@ -1485,10 +1486,8 @@ static int btusb_probe(struct usb_interface *intf, | |||
1485 | if (id->driver_info & BTUSB_BCM92035) | 1486 | if (id->driver_info & BTUSB_BCM92035) |
1486 | hdev->setup = btusb_setup_bcm92035; | 1487 | hdev->setup = btusb_setup_bcm92035; |
1487 | 1488 | ||
1488 | if (id->driver_info & BTUSB_INTEL) { | 1489 | if (id->driver_info & BTUSB_INTEL) |
1489 | usb_enable_autosuspend(data->udev); | ||
1490 | hdev->setup = btusb_setup_intel; | 1490 | hdev->setup = btusb_setup_intel; |
1491 | } | ||
1492 | 1491 | ||
1493 | /* Interface numbers are hardcoded in the specification */ | 1492 | /* Interface numbers are hardcoded in the specification */ |
1494 | data->isoc = usb_ifnum_to_if(data->udev, 1); | 1493 | data->isoc = usb_ifnum_to_if(data->udev, 1); |
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index d958e2dca52f..521fd4f3985e 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c | |||
@@ -819,14 +819,17 @@ static int hci_conn_auth(struct hci_conn *conn, __u8 sec_level, __u8 auth_type) | |||
819 | if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) { | 819 | if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) { |
820 | struct hci_cp_auth_requested cp; | 820 | struct hci_cp_auth_requested cp; |
821 | 821 | ||
822 | /* encrypt must be pending if auth is also pending */ | ||
823 | set_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags); | ||
824 | |||
825 | cp.handle = cpu_to_le16(conn->handle); | 822 | cp.handle = cpu_to_le16(conn->handle); |
826 | hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED, | 823 | hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED, |
827 | sizeof(cp), &cp); | 824 | sizeof(cp), &cp); |
825 | |||
826 | /* If we're already encrypted set the REAUTH_PEND flag, | ||
827 | * otherwise set the ENCRYPT_PEND. | ||
828 | */ | ||
828 | if (conn->key_type != 0xff) | 829 | if (conn->key_type != 0xff) |
829 | set_bit(HCI_CONN_REAUTH_PEND, &conn->flags); | 830 | set_bit(HCI_CONN_REAUTH_PEND, &conn->flags); |
831 | else | ||
832 | set_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags); | ||
830 | } | 833 | } |
831 | 834 | ||
832 | return 0; | 835 | return 0; |
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 49774912cb01..15010a230b6d 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c | |||
@@ -3330,6 +3330,12 @@ static void hci_key_refresh_complete_evt(struct hci_dev *hdev, | |||
3330 | if (!conn) | 3330 | if (!conn) |
3331 | goto unlock; | 3331 | goto unlock; |
3332 | 3332 | ||
3333 | /* For BR/EDR the necessary steps are taken through the | ||
3334 | * auth_complete event. | ||
3335 | */ | ||
3336 | if (conn->type != LE_LINK) | ||
3337 | goto unlock; | ||
3338 | |||
3333 | if (!ev->status) | 3339 | if (!ev->status) |
3334 | conn->sec_level = conn->pending_sec_level; | 3340 | conn->sec_level = conn->pending_sec_level; |
3335 | 3341 | ||