linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Bluetooth: Emit events for suspend/resume
@ 2020-07-29  1:42 Abhishek Pandit-Subedi
  2020-07-29  1:42 ` [PATCH 1/3] Bluetooth: Add mgmt suspend and resume events Abhishek Pandit-Subedi
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Abhishek Pandit-Subedi @ 2020-07-29  1:42 UTC (permalink / raw)
  To: marcel, luiz.dentz
  Cc: chromeos-bluetooth-upstreaming, linux-bluetooth,
	Abhishek Pandit-Subedi, David S. Miller, Johan Hedberg, netdev,
	linux-kernel, Jakub Kicinski


Hi Marcel,

This series adds the suspend/resume events suggested in
https://patchwork.kernel.org/patch/11663455/.

I have tested it with some userspace changes that monitors the
controller resumed event to trigger audio device reconnection and
verified that the events are correctly emitted.

Please take a look.
Abhishek


Abhishek Pandit-Subedi (3):
  Bluetooth: Add mgmt suspend and resume events
  Bluetooth: Add suspend reason for device disconnect
  Bluetooth: Emit controller suspend and resume events

 include/net/bluetooth/hci_core.h |  6 +++
 include/net/bluetooth/mgmt.h     | 16 +++++++
 net/bluetooth/hci_core.c         | 26 +++++++++++-
 net/bluetooth/hci_event.c        | 73 ++++++++++++++++++++++++++++++++
 net/bluetooth/mgmt.c             | 28 ++++++++++++
 5 files changed, 148 insertions(+), 1 deletion(-)

-- 
2.28.0.rc0.142.g3c755180ce-goog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/3] Bluetooth: Add mgmt suspend and resume events
  2020-07-29  1:42 [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
@ 2020-07-29  1:42 ` Abhishek Pandit-Subedi
  2020-07-29  1:42 ` [PATCH 2/3] Bluetooth: Add suspend reason for device disconnect Abhishek Pandit-Subedi
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Abhishek Pandit-Subedi @ 2020-07-29  1:42 UTC (permalink / raw)
  To: marcel, luiz.dentz
  Cc: chromeos-bluetooth-upstreaming, linux-bluetooth,
	Abhishek Pandit-Subedi, Miao-chen Chou, Sonny Sasaka,
	David S. Miller, Johan Hedberg, netdev, linux-kernel,
	Jakub Kicinski

Add the controller suspend and resume events, which will signal when
Bluetooth has completed preparing for suspend and when it's ready for
resume.

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Reviewed-by: Sonny Sasaka <sonnysasaka@chromium.org>
---

 include/net/bluetooth/hci_core.h |  3 +++
 include/net/bluetooth/mgmt.h     | 11 +++++++++++
 net/bluetooth/mgmt.c             | 24 ++++++++++++++++++++++++
 3 files changed, 38 insertions(+)

diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index bee1b4778ccc96..1b336e6ebe66aa 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -1747,6 +1747,9 @@ void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
 void mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
 		      u8 addr_type, s8 rssi, u8 *name, u8 name_len);
 void mgmt_discovering(struct hci_dev *hdev, u8 discovering);
+void mgmt_suspending(struct hci_dev *hdev, u8 state);
+void mgmt_resuming(struct hci_dev *hdev, u8 reason, bdaddr_t *bdaddr,
+		   u8 addr_type);
 bool mgmt_powering_down(struct hci_dev *hdev);
 void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, bool persistent);
 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent);
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
index beae5c3980f03b..d9a88cab379555 100644
--- a/include/net/bluetooth/mgmt.h
+++ b/include/net/bluetooth/mgmt.h
@@ -1028,3 +1028,14 @@ struct mgmt_ev_adv_monitor_added {
 struct mgmt_ev_adv_monitor_removed {
 	__le16 monitor_handle;
 }  __packed;
+
+#define MGMT_EV_CONTROLLER_SUSPEND		0x002d
+struct mgmt_ev_controller_suspend {
+	__u8	suspend_state;
+} __packed;
+
+#define MGMT_EV_CONTROLLER_RESUME		0x002e
+struct mgmt_ev_controller_resume {
+	__u8	wake_reason;
+	struct mgmt_addr_info addr;
+} __packed;
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index f45105d2de7722..1c89ae819207ac 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -8730,6 +8730,30 @@ void mgmt_discovering(struct hci_dev *hdev, u8 discovering)
 	mgmt_event(MGMT_EV_DISCOVERING, hdev, &ev, sizeof(ev), NULL);
 }
 
+void mgmt_suspending(struct hci_dev *hdev, u8 state)
+{
+	struct mgmt_ev_controller_suspend ev;
+
+	ev.suspend_state = state;
+	mgmt_event(MGMT_EV_CONTROLLER_SUSPEND, hdev, &ev, sizeof(ev), NULL);
+}
+
+void mgmt_resuming(struct hci_dev *hdev, u8 reason, bdaddr_t *bdaddr,
+		   u8 addr_type)
+{
+	struct mgmt_ev_controller_resume ev;
+
+	ev.wake_reason = reason;
+	if (bdaddr) {
+		bacpy(&ev.addr.bdaddr, bdaddr);
+		ev.addr.type = addr_type;
+	} else {
+		memset(&ev.addr, 0, sizeof(ev.addr));
+	}
+
+	mgmt_event(MGMT_EV_CONTROLLER_RESUME, hdev, &ev, sizeof(ev), NULL);
+}
+
 static struct hci_mgmt_chan chan = {
 	.channel	= HCI_CHANNEL_CONTROL,
 	.handler_count	= ARRAY_SIZE(mgmt_handlers),
-- 
2.28.0.rc0.142.g3c755180ce-goog


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/3] Bluetooth: Add suspend reason for device disconnect
  2020-07-29  1:42 [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
  2020-07-29  1:42 ` [PATCH 1/3] Bluetooth: Add mgmt suspend and resume events Abhishek Pandit-Subedi
@ 2020-07-29  1:42 ` Abhishek Pandit-Subedi
  2020-07-29  1:42 ` [PATCH 3/3] Bluetooth: Emit controller suspend and resume events Abhishek Pandit-Subedi
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Abhishek Pandit-Subedi @ 2020-07-29  1:42 UTC (permalink / raw)
  To: marcel, luiz.dentz
  Cc: chromeos-bluetooth-upstreaming, linux-bluetooth,
	Abhishek Pandit-Subedi, Miao-chen Chou, Sonny Sasaka,
	David S. Miller, Johan Hedberg, netdev, linux-kernel,
	Jakub Kicinski

Update device disconnect event with reason 0x5 to indicate that device
disconnected because the controller is suspending.

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Reviewed-by: Sonny Sasaka <sonnysasaka@chromium.org>
---

 include/net/bluetooth/mgmt.h | 1 +
 net/bluetooth/mgmt.c         | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
index d9a88cab379555..1a98f836aad126 100644
--- a/include/net/bluetooth/mgmt.h
+++ b/include/net/bluetooth/mgmt.h
@@ -840,6 +840,7 @@ struct mgmt_ev_device_connected {
 #define MGMT_DEV_DISCONN_LOCAL_HOST	0x02
 #define MGMT_DEV_DISCONN_REMOTE		0x03
 #define MGMT_DEV_DISCONN_AUTH_FAILURE	0x04
+#define MGMT_DEV_DISCONN_LOCAL_HOST_SUSPEND	0x05
 
 #define MGMT_EV_DEVICE_DISCONNECTED	0x000C
 struct mgmt_ev_device_disconnected {
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 1c89ae819207ac..fcda479134c756 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -8124,6 +8124,10 @@ void mgmt_device_disconnected(struct hci_dev *hdev, bdaddr_t *bdaddr,
 	ev.addr.type = link_to_bdaddr(link_type, addr_type);
 	ev.reason = reason;
 
+	/* Report disconnects due to suspend */
+	if (hdev->suspended)
+		ev.reason = MGMT_DEV_DISCONN_LOCAL_HOST_SUSPEND;
+
 	mgmt_event(MGMT_EV_DEVICE_DISCONNECTED, hdev, &ev, sizeof(ev), sk);
 
 	if (sk)
-- 
2.28.0.rc0.142.g3c755180ce-goog


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/3] Bluetooth: Emit controller suspend and resume events
  2020-07-29  1:42 [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
  2020-07-29  1:42 ` [PATCH 1/3] Bluetooth: Add mgmt suspend and resume events Abhishek Pandit-Subedi
  2020-07-29  1:42 ` [PATCH 2/3] Bluetooth: Add suspend reason for device disconnect Abhishek Pandit-Subedi
@ 2020-07-29  1:42 ` Abhishek Pandit-Subedi
  2020-08-04 17:11 ` [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
  2020-09-11  7:20 ` Marcel Holtmann
  4 siblings, 0 replies; 7+ messages in thread
From: Abhishek Pandit-Subedi @ 2020-07-29  1:42 UTC (permalink / raw)
  To: marcel, luiz.dentz
  Cc: chromeos-bluetooth-upstreaming, linux-bluetooth,
	Abhishek Pandit-Subedi, Miao-chen Chou, David S. Miller,
	Johan Hedberg, netdev, linux-kernel, Jakub Kicinski

Emit controller suspend and resume events when we are ready for suspend
and we've resumed from suspend.

The controller suspend event will report whatever suspend state was
successfully entered. The controller resume event will check the first
HCI event that was received after we finished preparing for suspend and,
if it was a connection event, store the address of the peer that caused
the event. If it was not a connection event, we mark the wake reason as
an unexpected event.

Here is a sample btmon trace with these events:

@ MGMT Event: Controller Suspended (0x002d) plen 1
        Suspend state: Page scanning and/or passive scanning (2)

@ MGMT Event: Controller Resumed (0x002e) plen 8
        Wake reason: Remote wake due to peer device connection (2)
        LE Address: CD:F3:CD:13:C5:9A (OUI CD-F3-CD)

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
---

 include/net/bluetooth/hci_core.h |  3 ++
 include/net/bluetooth/mgmt.h     |  4 ++
 net/bluetooth/hci_core.c         | 26 +++++++++++-
 net/bluetooth/hci_event.c        | 73 ++++++++++++++++++++++++++++++++
 4 files changed, 105 insertions(+), 1 deletion(-)

diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 1b336e6ebe66aa..7314798e47c3d6 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -484,6 +484,9 @@ struct hci_dev {
 	enum suspended_state	suspend_state;
 	bool			scanning_paused;
 	bool			suspended;
+	u8			wake_reason;
+	bdaddr_t		wake_addr;
+	u8			wake_addr_type;
 
 	wait_queue_head_t	suspend_wait_q;
 	DECLARE_BITMAP(suspend_tasks, __SUSPEND_NUM_TASKS);
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
index 1a98f836aad126..052fe443484112 100644
--- a/include/net/bluetooth/mgmt.h
+++ b/include/net/bluetooth/mgmt.h
@@ -1040,3 +1040,7 @@ struct mgmt_ev_controller_resume {
 	__u8	wake_reason;
 	struct mgmt_addr_info addr;
 } __packed;
+
+#define MGMT_WAKE_REASON_NON_BT_WAKE		0x0
+#define MGMT_WAKE_REASON_UNEXPECTED		0x1
+#define MGMT_WAKE_REASON_REMOTE_WAKE		0x2
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 4ba23b821cbf4a..2cc121731d6a7e 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -3470,12 +3470,24 @@ static int hci_change_suspend_state(struct hci_dev *hdev,
 	return hci_suspend_wait_event(hdev);
 }
 
+static void hci_clear_wake_reason(struct hci_dev *hdev)
+{
+	hci_dev_lock(hdev);
+
+	hdev->wake_reason = 0;
+	bacpy(&hdev->wake_addr, BDADDR_ANY);
+	hdev->wake_addr_type = 0;
+
+	hci_dev_unlock(hdev);
+}
+
 static int hci_suspend_notifier(struct notifier_block *nb, unsigned long action,
 				void *data)
 {
 	struct hci_dev *hdev =
 		container_of(nb, struct hci_dev, suspend_notifier);
 	int ret = 0;
+	u8 state = BT_RUNNING;
 
 	/* If powering down, wait for completion. */
 	if (mgmt_powering_down(hdev)) {
@@ -3496,15 +3508,27 @@ static int hci_suspend_notifier(struct notifier_block *nb, unsigned long action,
 		 *  - Second, program event filter/whitelist and enable scan
 		 */
 		ret = hci_change_suspend_state(hdev, BT_SUSPEND_DISCONNECT);
+		if (!ret)
+			state = BT_SUSPEND_DISCONNECT;
 
 		/* Only configure whitelist if disconnect succeeded and wake
 		 * isn't being prevented.
 		 */
-		if (!ret && !(hdev->prevent_wake && hdev->prevent_wake(hdev)))
+		if (!ret && !(hdev->prevent_wake && hdev->prevent_wake(hdev))) {
 			ret = hci_change_suspend_state(hdev,
 						BT_SUSPEND_CONFIGURE_WAKE);
+			if (!ret)
+				state = BT_SUSPEND_CONFIGURE_WAKE;
+		}
+
+		hci_clear_wake_reason(hdev);
+		mgmt_suspending(hdev, state);
+
 	} else if (action == PM_POST_SUSPEND) {
 		ret = hci_change_suspend_state(hdev, BT_RUNNING);
+
+		mgmt_resuming(hdev, hdev->wake_reason, &hdev->wake_addr,
+			      hdev->wake_addr_type);
 	}
 
 done:
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 61f8c4d1202823..e92311ead456e5 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -5979,6 +5979,76 @@ static bool hci_get_cmd_complete(struct hci_dev *hdev, u16 opcode,
 	return true;
 }
 
+static void hci_store_wake_reason(struct hci_dev *hdev, u8 event,
+				  struct sk_buff *skb)
+{
+	struct hci_ev_le_advertising_info *adv;
+	struct hci_ev_le_direct_adv_info *direct_adv;
+	struct hci_ev_le_ext_adv_report *ext_adv;
+	const struct hci_ev_conn_complete *conn_complete = (void *)skb->data;
+	const struct hci_ev_conn_request *conn_request = (void *)skb->data;
+
+	hci_dev_lock(hdev);
+
+	/* If we are currently suspended and this is the first BT event seen,
+	 * save the wake reason associated with the event.
+	 */
+	if (!hdev->suspended || hdev->wake_reason)
+		goto unlock;
+
+	/* Default to remote wake. Values for wake_reason are documented in the
+	 * Bluez mgmt api docs.
+	 */
+	hdev->wake_reason = MGMT_WAKE_REASON_REMOTE_WAKE;
+
+	/* Once configured for remote wakeup, we should only wake up for
+	 * reconnections. It's useful to see which device is waking us up so
+	 * keep track of the bdaddr of the connection event that woke us up.
+	 */
+	if (event == HCI_EV_CONN_REQUEST) {
+		bacpy(&hdev->wake_addr, &conn_complete->bdaddr);
+		hdev->wake_addr_type = BDADDR_BREDR;
+	} else if (event == HCI_EV_CONN_COMPLETE) {
+		bacpy(&hdev->wake_addr, &conn_request->bdaddr);
+		hdev->wake_addr_type = BDADDR_BREDR;
+	} else if (event == HCI_EV_LE_META) {
+		struct hci_ev_le_meta *le_ev = (void *)skb->data;
+		u8 subevent = le_ev->subevent;
+		u8 *ptr = &skb->data[sizeof(*le_ev)];
+		u8 num_reports = *ptr;
+
+		if ((subevent == HCI_EV_LE_ADVERTISING_REPORT ||
+		     subevent == HCI_EV_LE_DIRECT_ADV_REPORT ||
+		     subevent == HCI_EV_LE_EXT_ADV_REPORT) &&
+		    num_reports) {
+			adv = (void *)(ptr + 1);
+			direct_adv = (void *)(ptr + 1);
+			ext_adv = (void *)(ptr + 1);
+
+			switch (subevent) {
+			case HCI_EV_LE_ADVERTISING_REPORT:
+				bacpy(&hdev->wake_addr, &adv->bdaddr);
+				hdev->wake_addr_type = adv->bdaddr_type;
+				break;
+
+			case HCI_EV_LE_DIRECT_ADV_REPORT:
+				bacpy(&hdev->wake_addr, &direct_adv->bdaddr);
+				hdev->wake_addr_type = direct_adv->bdaddr_type;
+				break;
+			case HCI_EV_LE_EXT_ADV_REPORT:
+				bacpy(&hdev->wake_addr, &ext_adv->bdaddr);
+				hdev->wake_addr_type = ext_adv->bdaddr_type;
+				break;
+			}
+		}
+	} else {
+		hdev->wake_reason = MGMT_WAKE_REASON_UNEXPECTED;
+	}
+
+unlock:
+	hci_dev_unlock(hdev);
+}
+
 void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb)
 {
 	struct hci_event_hdr *hdr = (void *) skb->data;
@@ -6012,6 +6082,9 @@ void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb)
 
 	skb_pull(skb, HCI_EVENT_HDR_SIZE);
 
+	/* Store wake reason if we're suspended */
+	hci_store_wake_reason(hdev, event, skb);
+
 	switch (event) {
 	case HCI_EV_INQUIRY_COMPLETE:
 		hci_inquiry_complete_evt(hdev, skb);
-- 
2.28.0.rc0.142.g3c755180ce-goog


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/3] Bluetooth: Emit events for suspend/resume
  2020-07-29  1:42 [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
                   ` (2 preceding siblings ...)
  2020-07-29  1:42 ` [PATCH 3/3] Bluetooth: Emit controller suspend and resume events Abhishek Pandit-Subedi
@ 2020-08-04 17:11 ` Abhishek Pandit-Subedi
  2020-08-18 23:34   ` Abhishek Pandit-Subedi
  2020-09-11  7:20 ` Marcel Holtmann
  4 siblings, 1 reply; 7+ messages in thread
From: Abhishek Pandit-Subedi @ 2020-08-04 17:11 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz
  Cc: ChromeOS Bluetooth Upstreaming, Bluez mailing list,
	David S. Miller, Johan Hedberg, netdev, LKML, Jakub Kicinski

Hi,

Gentle reminder that this is waiting for feedback. Related userspace
changes are here to see how we plan on using it:
https://patchwork.kernel.org/project/bluetooth/list/?series=325777

Thanks
Abhishek

On Tue, Jul 28, 2020 at 6:42 PM Abhishek Pandit-Subedi
<abhishekpandit@chromium.org> wrote:
>
>
> Hi Marcel,
>
> This series adds the suspend/resume events suggested in
> https://patchwork.kernel.org/patch/11663455/.
>
> I have tested it with some userspace changes that monitors the
> controller resumed event to trigger audio device reconnection and
> verified that the events are correctly emitted.
>
> Please take a look.
> Abhishek
>
>
> Abhishek Pandit-Subedi (3):
>   Bluetooth: Add mgmt suspend and resume events
>   Bluetooth: Add suspend reason for device disconnect
>   Bluetooth: Emit controller suspend and resume events
>
>  include/net/bluetooth/hci_core.h |  6 +++
>  include/net/bluetooth/mgmt.h     | 16 +++++++
>  net/bluetooth/hci_core.c         | 26 +++++++++++-
>  net/bluetooth/hci_event.c        | 73 ++++++++++++++++++++++++++++++++
>  net/bluetooth/mgmt.c             | 28 ++++++++++++
>  5 files changed, 148 insertions(+), 1 deletion(-)
>
> --
> 2.28.0.rc0.142.g3c755180ce-goog
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/3] Bluetooth: Emit events for suspend/resume
  2020-08-04 17:11 ` [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
@ 2020-08-18 23:34   ` Abhishek Pandit-Subedi
  0 siblings, 0 replies; 7+ messages in thread
From: Abhishek Pandit-Subedi @ 2020-08-18 23:34 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz
  Cc: ChromeOS Bluetooth Upstreaming, Bluez mailing list,
	David S. Miller, Johan Hedberg, netdev, LKML, Jakub Kicinski

Hi Marcel,

Please review this patch. A newer series for how the controller resume
event will be used is available at
https://patchwork.kernel.org/project/bluetooth/list/?series=334811

Besides usage in bluez, these events will also make debugging and
testing suspend/resume for Bluez easier (i.e. finding spurious wakes
due to BT in suspend stress tests, asserting that wakeup from peers
occurred as expected in tests)

Abhishek

On Tue, Aug 4, 2020 at 10:11 AM Abhishek Pandit-Subedi
<abhishekpandit@chromium.org> wrote:
>
> Hi,
>
> Gentle reminder that this is waiting for feedback. Related userspace
> changes are here to see how we plan on using it:
> https://patchwork.kernel.org/project/bluetooth/list/?series=325777
>
> Thanks
> Abhishek
>
> On Tue, Jul 28, 2020 at 6:42 PM Abhishek Pandit-Subedi
> <abhishekpandit@chromium.org> wrote:
> >
> >
> > Hi Marcel,
> >
> > This series adds the suspend/resume events suggested in
> > https://patchwork.kernel.org/patch/11663455/.
> >
> > I have tested it with some userspace changes that monitors the
> > controller resumed event to trigger audio device reconnection and
> > verified that the events are correctly emitted.
> >
> > Please take a look.
> > Abhishek
> >
> >
> > Abhishek Pandit-Subedi (3):
> >   Bluetooth: Add mgmt suspend and resume events
> >   Bluetooth: Add suspend reason for device disconnect
> >   Bluetooth: Emit controller suspend and resume events
> >
> >  include/net/bluetooth/hci_core.h |  6 +++
> >  include/net/bluetooth/mgmt.h     | 16 +++++++
> >  net/bluetooth/hci_core.c         | 26 +++++++++++-
> >  net/bluetooth/hci_event.c        | 73 ++++++++++++++++++++++++++++++++
> >  net/bluetooth/mgmt.c             | 28 ++++++++++++
> >  5 files changed, 148 insertions(+), 1 deletion(-)
> >
> > --
> > 2.28.0.rc0.142.g3c755180ce-goog
> >

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/3] Bluetooth: Emit events for suspend/resume
  2020-07-29  1:42 [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
                   ` (3 preceding siblings ...)
  2020-08-04 17:11 ` [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
@ 2020-09-11  7:20 ` Marcel Holtmann
  4 siblings, 0 replies; 7+ messages in thread
From: Marcel Holtmann @ 2020-09-11  7:20 UTC (permalink / raw)
  To: Abhishek Pandit-Subedi
  Cc: Luiz Augusto von Dentz, chromeos-bluetooth-upstreaming,
	linux-bluetooth, David S. Miller, Johan Hedberg, netdev,
	linux-kernel, Jakub Kicinski

Hi Abhishek,

> This series adds the suspend/resume events suggested in
> https://patchwork.kernel.org/patch/11663455/.
> 
> I have tested it with some userspace changes that monitors the
> controller resumed event to trigger audio device reconnection and
> verified that the events are correctly emitted.
> 
> Please take a look.
> Abhishek
> 
> 
> Abhishek Pandit-Subedi (3):
>  Bluetooth: Add mgmt suspend and resume events
>  Bluetooth: Add suspend reason for device disconnect
>  Bluetooth: Emit controller suspend and resume events
> 
> include/net/bluetooth/hci_core.h |  6 +++
> include/net/bluetooth/mgmt.h     | 16 +++++++
> net/bluetooth/hci_core.c         | 26 +++++++++++-
> net/bluetooth/hci_event.c        | 73 ++++++++++++++++++++++++++++++++
> net/bluetooth/mgmt.c             | 28 ++++++++++++
> 5 files changed, 148 insertions(+), 1 deletion(-)

can you please re-send this series. Unfortunately it seems I only have the cover letter, but lost the patches.

Regards

Marcel


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-09-11  7:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-29  1:42 [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
2020-07-29  1:42 ` [PATCH 1/3] Bluetooth: Add mgmt suspend and resume events Abhishek Pandit-Subedi
2020-07-29  1:42 ` [PATCH 2/3] Bluetooth: Add suspend reason for device disconnect Abhishek Pandit-Subedi
2020-07-29  1:42 ` [PATCH 3/3] Bluetooth: Emit controller suspend and resume events Abhishek Pandit-Subedi
2020-08-04 17:11 ` [PATCH 0/3] Bluetooth: Emit events for suspend/resume Abhishek Pandit-Subedi
2020-08-18 23:34   ` Abhishek Pandit-Subedi
2020-09-11  7:20 ` Marcel Holtmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).