Thread (4 messages) flat view 4 messages, 3 authors, 2021-03-03

Re: [PATCH v2 1/1] Bluetooth: Remove unneeded commands for suspend

From: Marcel Holtmann <marcel@holtmann.org>
Date: 2021-03-03 19:07:02
Also in: lkml, netdev

Hi Abhishek,
quoted hunk ↗ jump to hunk
During suspend, there are a few scan enable and set event filter
commands that don't need to be sent unless there are actual BR/EDR
devices capable of waking the system. Check the HCI_PSCAN bit before
writing scan enable and use a new dev flag, HCI_EVENT_FILTER_CONFIGURED
to control whether to clear the event filter.

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Reviewed-by: Archie Pusaka <redacted>
Reviewed-by: Alain Michaud <redacted>
---

Changes in v2:
* Removed hci_dev_lock from hci_cc_set_event_filter since flags are
 set/cleared atomically

include/net/bluetooth/hci.h |  1 +
net/bluetooth/hci_event.c   | 24 ++++++++++++++++++++
net/bluetooth/hci_request.c | 44 +++++++++++++++++++++++--------------
3 files changed, 52 insertions(+), 17 deletions(-)
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index ba2f439bc04d34..ea4ae551c42687 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -320,6 +320,7 @@ enum {
	HCI_BREDR_ENABLED,
	HCI_LE_SCAN_INTERRUPTED,
	HCI_WIDEBAND_SPEECH_ENABLED,
+	HCI_EVENT_FILTER_CONFIGURED,

	HCI_DUT_MODE,
	HCI_VENDOR_DIAG,
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 67668be3461e93..6eadc999ea1474 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -395,6 +395,26 @@ static void hci_cc_write_scan_enable(struct hci_dev *hdev, struct sk_buff *skb)
	hci_dev_unlock(hdev);
}

+static void hci_cc_set_event_filter(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	__u8 status = *((__u8 *)skb->data);
+	struct hci_cp_set_event_filter *cp;
+	void *sent;
+
+	BT_DBG("%s status 0x%2.2x", hdev->name, status);
+
+	sent = hci_sent_cmd_data(hdev, HCI_OP_SET_EVENT_FLT);
+	if (!sent || status)
+		return;
can we do this:

	if (status)
		return;

	sent = hci_..
	if (!sent)
		return;

Regards

Marcel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help