2019-08-28 12:14:32

by Michal Suchánek

[permalink] [raw]
Subject: [PATCH] Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"

This reverts commit a0085f2510e8976614ad8f766b209448b385492f.

After this commit systems wake up at random, most commonly when

- put to sleep while bluetooth audio stream is running
- connected bluetooth audio device is powered off while system is
asleep

This is broken since the commit was merged up to 5.3-rc6.

Signed-off-by: Michal Suchanek <[email protected]>
---
drivers/bluetooth/btusb.c | 5 -----
1 file changed, 5 deletions(-)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 5cf0734eb31b..5c67d41ca254 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -1170,10 +1170,6 @@ 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;
@@ -1238,7 +1234,6 @@ 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:
--
2.22.0


2019-08-30 07:47:21

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"

Hi Mario,

> This reverts commit a0085f2510e8976614ad8f766b209448b385492f.
>
> This commit has caused regressions in notebooks that support suspend
> to idle such as the XPS 9360, XPS 9370 and XPS 9380.
>
> These notebooks will wakeup from suspend to idle from an unsolicited
> advertising packet from an unpaired BLE device.
>
> In a bug report it was sugggested that this is caused by a generic
> lack of LE privacy support. Revert this commit until that behavior
> can be avoided by the kernel.
>
> Fixes: a0085f2510e8 ("Bluetooth: btusb: driver to enable the usb-wakeup feature")
> BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=200039
> Link: https://marc.info/?l=linux-bluetooth&m=156441081612627&w=2
> Link: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/750073/
> CC: Bastien Nocera <[email protected]>
> CC: Christian Kellner <[email protected]>
> CC: Sukumar Ghorai <[email protected]>
> Signed-off-by: Mario Limonciello <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 5 -----
> 1 file changed, 5 deletions(-)

patch has been applied to bluetooth-stable tree.

Regards

Marcel

2019-08-30 07:50:05

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"

Hi Michal,

> This reverts commit a0085f2510e8976614ad8f766b209448b385492f.
>
> After this commit systems wake up at random, most commonly when
>
> - put to sleep while bluetooth audio stream is running
> - connected bluetooth audio device is powered off while system is
> asleep
>
> This is broken since the commit was merged up to 5.3-rc6.
>
> Signed-off-by: Michal Suchanek <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 5 -----
> 1 file changed, 5 deletions(-)

I think that Mario send in the same patch already.

Regards

Marcel

2019-08-30 09:35:12

by Michal Suchánek

[permalink] [raw]
Subject: Re: [PATCH] Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"

On Fri, 30 Aug 2019 09:49:35 +0200
Marcel Holtmann <[email protected]> wrote:

> Hi Michal,
>
> > This reverts commit a0085f2510e8976614ad8f766b209448b385492f.
> >
> > After this commit systems wake up at random, most commonly when
> >
> > - put to sleep while bluetooth audio stream is running
> > - connected bluetooth audio device is powered off while system is
> > asleep
> >
> > This is broken since the commit was merged up to 5.3-rc6.
> >
> > Signed-off-by: Michal Suchanek <[email protected]>
> > ---
> > drivers/bluetooth/btusb.c | 5 -----
> > 1 file changed, 5 deletions(-)
>
> I think that Mario send in the same patch already.

Yes, I found it after this copy was threaded with the previous one on
lore.kernel.org. Anyway, there are multiple reasons why this is broken.

AFAICT the wakeup feature is only workable with OSes that are able to
wakeup into a small gadget that can check if the packet is interesting
and put the system back to sleep if not without going through the whole
online/offline everything sequence.

Thanks

Michal