Thread (2 messages) flat view 2 messages, 2 authors, 2021-09-24

Re: [PATCH v3] bluetooth: Fix Advertisement Monitor Suspend/Resume

From: Marcel Holtmann <marcel@holtmann.org>
Date: 2021-09-24 10:14:28
Also in: lkml, netdev

Hi Manish,
During system suspend, advertisement monitoring is disabled by setting
the HCI_VS_MSFT_LE_Set_Advertisement_Filter_Enable to False. This
disables the monitoring during suspend, however, if the controller is
monitoring a device, it sends HCI_VS_MSFT_LE_Monitor_Device_Event to
indicate that the monitoring has been stopped for that particular
device. This event may occur after suspend depending on the
low_threshold_timeout and peer device advertisement frequency, which
causes early wake up.

Right way to disable the monitoring for suspend is by removing all the
monitors before suspend and re-monitor after resume to ensure no events
are received during suspend. This patch fixes this suspend/resume issue.

Following tests are performed:
- Add monitors before suspend and make sure DeviceFound gets triggered
- Suspend the system and verify that all monitors are removed by kernel
 but not Released by bluetoothd
- Wake up and verify that all monitors are added again and DeviceFound
 gets triggered

Signed-off-by: Manish Mandlik <redacted>
Reviewed-by: Archie Pusaka <redacted>
Reviewed-by: Miao-chen Chou <redacted>
---

Changes in v3:
- Updated the msft_{suspend/resume} function names

Changes in v2:
- Updated the Reviewd-by names

net/bluetooth/hci_request.c |  15 +++--
net/bluetooth/msft.c        | 117 +++++++++++++++++++++++++++++++-----
net/bluetooth/msft.h        |   5 ++
3 files changed, 116 insertions(+), 21 deletions(-)
patch has been applied to bluetooth-next tree.

Regards

Marcel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help