Skip to content

Commit

Permalink
Bluetooth: btusb: driver to enable the usb-wakeup feature
Browse files Browse the repository at this point in the history
BT-Controller connected as platform non-root-hub device and
usb-driver initialize such device with wakeup disabled,
Ref. usb_new_device().

At present wakeup-capability get enabled by hid-input device from usb
function driver(e.g. BT HID device) at runtime. Again some functional
driver does not set usb-wakeup capability(e.g LE HID device implement
as HID-over-GATT), and can't wakeup the host on USB.

Most of the device operation (such as mass storage) initiated from host
(except HID) and USB wakeup aligned with host resume procedure. For BT
device, usb-wakeup capability need to enable form btusc driver as a
generic solution for multiple profile use case and required for USB remote
wakeup (in-bus wakeup) while host is suspended. Also usb-wakeup feature
need to enable/disable with HCI interface up and down.

Signed-off-by: Sukumar Ghorai <[email protected]>
Signed-off-by: Amit K Bag <[email protected]>
Acked-by: Oliver Neukum <[email protected]>
Signed-off-by: Marcel Holtmann <[email protected]>
  • Loading branch information
sghorai authored and holtmann committed Aug 16, 2017
1 parent 9834e58 commit a0085f2
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/bluetooth/btusb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1088,6 +1088,10 @@ static int btusb_open(struct hci_dev *hdev)
}

data->intf->needs_remote_wakeup = 1;
/* device specific wakeup source enabled and required for USB
* remote wakeup while host is suspended
*/
device_wakeup_enable(&data->udev->dev);

if (test_and_set_bit(BTUSB_INTR_RUNNING, &data->flags))
goto done;
Expand Down Expand Up @@ -1151,6 +1155,7 @@ static int btusb_close(struct hci_dev *hdev)
goto failed;

data->intf->needs_remote_wakeup = 0;
device_wakeup_disable(&data->udev->dev);
usb_autopm_put_interface(data->intf);

failed:
Expand Down

0 comments on commit a0085f2

Please sign in to comment.