[RFC PATCH 0/2] Bluetooth: Handle system suspend gracefully

From: Abhishek Pandit-Subedi
Date: Fri Jan 17 2020 - 16:27:38 EST



Hi linux-bluetooth,

This patch series prepares the Bluetooth controller for system suspend
by disconnecting all devices and preparing the event filter and LE
whitelist with devices that can wake the system from suspend.

The main motivation for doing this is so we can enable Bluetooth as
a wake up source during suspend without it being noisy. Bluetooth should
wake the system when a HID device receives user input but otherwise not
send any events to the host.

This patch series was tested on several Chromebooks with both btusb and
hci_serdev on kernel 4.19. The set of tests was basically the following:
* Reconnects after suspend succeed
* HID devices can wake the system from suspend (needs some related bluez
changes to call the Set Wake Capable management command)
* System properly pauses and unpauses discovery + advertising around
suspend
* System does not wake from any events from non wakeable devices

Please review and provide any feedback.

Thanks
Abhishek



Abhishek Pandit-Subedi (2):
Bluetooth: Add mgmt op set_wake_capable
Bluetooth: Handle PM_SUSPEND_PREPARE and PM_POST_SUSPEND

include/net/bluetooth/hci.h | 30 +++-
include/net/bluetooth/hci_core.h | 46 +++++
include/net/bluetooth/mgmt.h | 7 +
net/bluetooth/hci_core.c | 71 ++++++++
net/bluetooth/hci_event.c | 24 ++-
net/bluetooth/hci_request.c | 297 ++++++++++++++++++++++++++++---
net/bluetooth/hci_request.h | 4 +-
net/bluetooth/mgmt.c | 94 +++++++++-
8 files changed, 537 insertions(+), 36 deletions(-)

--
2.25.0.341.g760bfbb309-goog