2020-05-13 02:10:30

by Abhishek Pandit-Subedi

[permalink] [raw]
Subject: [PATCH 0/2] Bluetooth: Update LE scanning parameters for suspend


Hi linux-bluetooth,

This series updates the values used for window and interval when the
system suspends. It also fixes a u8 vs u16 bug when setting up passive
scanning.

The values chosen for window and interval are 11.25ms and 640ms. I have
tested these on several Chromebooks with different LE peers (mouse,
keyboard, Raspberry Pi running bluez) and all of them are able to wake
the system with those parameters.

Thanks
Abhishek



Abhishek Pandit-Subedi (2):
Bluetooth: Fix incorrect type for window and interval
Bluetooth: Modify LE window and interval for suspend

net/bluetooth/hci_request.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--
2.26.2.645.ge9eca65c58-goog


2020-05-13 02:10:30

by Abhishek Pandit-Subedi

[permalink] [raw]
Subject: [PATCH 2/2] Bluetooth: Modify LE window and interval for suspend

When a device is suspended, it doesn't need to be as responsive to
connection events. Increase the interval to 640ms (creating a duty cycle
of roughly 1.75%) so that passive scanning uses much less power (vs
previous duty cycle of 18.75%). The new window + interval combination
has been tested to work with HID devices (which are currently the only
devices capable of wake up).

Signed-off-by: Abhishek Pandit-Subedi <[email protected]>
---

net/bluetooth/hci_request.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
index f6870e98faab2..6b45e31432a77 100644
--- a/net/bluetooth/hci_request.c
+++ b/net/bluetooth/hci_request.c
@@ -35,7 +35,7 @@
#define HCI_REQ_CANCELED 2

#define LE_SUSPEND_SCAN_WINDOW 0x0012
-#define LE_SUSPEND_SCAN_INTERVAL 0x0060
+#define LE_SUSPEND_SCAN_INTERVAL 0x0400

void hci_req_init(struct hci_request *req, struct hci_dev *hdev)
{
--
2.26.2.645.ge9eca65c58-goog

2020-05-13 06:55:17

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 0/2] Bluetooth: Update LE scanning parameters for suspend

Hi Abhishek,

> This series updates the values used for window and interval when the
> system suspends. It also fixes a u8 vs u16 bug when setting up passive
> scanning.
>
> The values chosen for window and interval are 11.25ms and 640ms. I have
> tested these on several Chromebooks with different LE peers (mouse,
> keyboard, Raspberry Pi running bluez) and all of them are able to wake
> the system with those parameters.
>
> Thanks
> Abhishek
>
>
>
> Abhishek Pandit-Subedi (2):
> Bluetooth: Fix incorrect type for window and interval
> Bluetooth: Modify LE window and interval for suspend
>
> net/bluetooth/hci_request.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

both patches have been applied to bluetooth-next tree.

Regards

Marcel