OSDN Git Service

Bluetooth: Set missing suspend task bits
authorAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
Fri, 4 Dec 2020 03:14:31 +0000 (11:14 +0800)
committerJohan Hedberg <johan.hedberg@intel.com>
Mon, 7 Dec 2020 15:01:46 +0000 (17:01 +0200)
When suspending, mark SUSPEND_SCAN_ENABLE and SUSPEND_SCAN_DISABLE tasks
correctly when either classic or le scanning is modified.

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Howard Chung <howardchung@google.com>
Reviewed-by: Alain Michaud <alainm@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
net/bluetooth/hci_request.c

index 80dc451..71bffd7 100644 (file)
@@ -707,6 +707,9 @@ void hci_req_add_le_scan_disable(struct hci_request *req, bool rpa_le_conn)
                return;
        }
 
+       if (hdev->suspended)
+               set_bit(SUSPEND_SCAN_DISABLE, hdev->suspend_tasks);
+
        if (use_ext_scan(hdev)) {
                struct hci_cp_le_set_ext_scan_enable cp;
 
@@ -1159,6 +1162,11 @@ static void hci_req_set_event_filter(struct hci_request *req)
                scan = SCAN_PAGE;
        }
 
+       if (scan)
+               set_bit(SUSPEND_SCAN_ENABLE, hdev->suspend_tasks);
+       else
+               set_bit(SUSPEND_SCAN_DISABLE, hdev->suspend_tasks);
+
        hci_req_add(req, HCI_OP_WRITE_SCAN_ENABLE, 1, &scan);
 }