summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth
diff options
context:
space:
mode:
authorEthan Hsieh <ethan.hsieh@canonical.com>2016-10-07 12:06:42 +0800
committerMarcel Holtmann <marcel@holtmann.org>2016-10-07 09:46:56 +0200
commitc7e163fe282f34efdf77fb09b333529de97a6a10 (patch)
tree0fc552aa32a10b539cca829217436c4c65077fb0 /drivers/bluetooth
parent1b422066658b7cc985fa020066b72d28159d858f (diff)
downloadlinux-stable-c7e163fe282f34efdf77fb09b333529de97a6a10.tar.gz
linux-stable-c7e163fe282f34efdf77fb09b333529de97a6a10.tar.bz2
linux-stable-c7e163fe282f34efdf77fb09b333529de97a6a10.zip
Bluetooth: btusb: Fix atheros firmware download error
Move usb_autopm_get_interface() ahead of setup_on_usb() to prevent device from sending usb control message in usb suspend mode. The error message is as below: [ 83.944103] btusb 1-2:1.1: usb_suspend_interface: status 0 [ 83.944107] btusb 1-2:1.0: usb_suspend_interface: status 0 [ 83.960132] usb 1-2: usb auto-suspend, wakeup 0 [ 83.976156] usb 1-2: usb_suspend_device: status 0 [ 83.976162] usb 1-2: usb_suspend_both: status 0 [ 298.689106] Bluetooth: hci0 [ 298.689399] Bluetooth: hci0: Failed to access otp area (-113) Signed-off-by: Ethan Hsieh <ethan.hsieh@canonical.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r--drivers/bluetooth/btusb.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 88962339d4b7..2f633df9f4e6 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -1043,6 +1043,10 @@ static int btusb_open(struct hci_dev *hdev)
BT_DBG("%s", hdev->name);
+ err = usb_autopm_get_interface(data->intf);
+ if (err < 0)
+ return err;
+
/* Patching USB firmware files prior to starting any URBs of HCI path
* It is more safe to use USB bulk channel for downloading USB patch
*/
@@ -1052,10 +1056,6 @@ static int btusb_open(struct hci_dev *hdev)
return err;
}
- err = usb_autopm_get_interface(data->intf);
- if (err < 0)
- return err;
-
data->intf->needs_remote_wakeup = 1;
if (test_and_set_bit(BTUSB_INTR_RUNNING, &data->flags))