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

From: Marcel Holtmann
Date: Fri Sep 24 2021 - 06:14:28 EST


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 <mmandlik@xxxxxxxxxx>
> Reviewed-by: Archie Pusaka <apusaka@xxxxxxxxxx>
> Reviewed-by: Miao-chen Chou <mcchou@xxxxxxxxxx>
> ---
>
> 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