mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 01:24:12 +08:00
Bluetooth: hci_sync: Fix suspend performance regression
This attempts to fix suspend performance when there is no connections by
not updating the event mask.
Fixes: ef61b6ea15
("Bluetooth: Always set event mask on suspend")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
afcb3369f4
commit
123f6d3ae7
@ -5549,17 +5549,21 @@ int hci_suspend_sync(struct hci_dev *hdev)
|
||||
/* Prevent disconnects from causing scanning to be re-enabled */
|
||||
hci_pause_scan_sync(hdev);
|
||||
|
||||
/* Soft disconnect everything (power off) */
|
||||
err = hci_disconnect_all_sync(hdev, HCI_ERROR_REMOTE_POWER_OFF);
|
||||
if (err) {
|
||||
/* Set state to BT_RUNNING so resume doesn't notify */
|
||||
hdev->suspend_state = BT_RUNNING;
|
||||
hci_resume_sync(hdev);
|
||||
return err;
|
||||
}
|
||||
if (hci_conn_count(hdev)) {
|
||||
/* Soft disconnect everything (power off) */
|
||||
err = hci_disconnect_all_sync(hdev, HCI_ERROR_REMOTE_POWER_OFF);
|
||||
if (err) {
|
||||
/* Set state to BT_RUNNING so resume doesn't notify */
|
||||
hdev->suspend_state = BT_RUNNING;
|
||||
hci_resume_sync(hdev);
|
||||
return err;
|
||||
}
|
||||
|
||||
/* Update event mask so only the allowed event can wakeup the host */
|
||||
hci_set_event_mask_sync(hdev);
|
||||
/* Update event mask so only the allowed event can wakeup the
|
||||
* host.
|
||||
*/
|
||||
hci_set_event_mask_sync(hdev);
|
||||
}
|
||||
|
||||
/* Only configure accept list if disconnect succeeded and wake
|
||||
* isn't being prevented.
|
||||
|
Loading…
Reference in New Issue
Block a user