• M
    Bluetooth: Fix Advertisement Monitor Suspend/Resume · ce81843b
    Manish Mandlik 提交于
    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: NManish Mandlik <mmandlik@google.com>
    Reviewed-by: NArchie Pusaka <apusaka@google.com>
    Reviewed-by: NMiao-chen Chou <mcchou@google.com>
    Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
    ce81843b
hci_request.c 83.8 KB