net/bluetooth/hci_sync.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
From: "clancy.shang" <clancy.shang@quectel.com>
Steam deck in suspending state, but bt controller send hci
mode change event to host. cause Steam Deck can't into sleep.
Signed-off-by: clancy.shang <clancy.shang@quectel.com>
---
net/bluetooth/hci_sync.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index a15ab0b874a9..a26a58cb2c38 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -3800,12 +3800,14 @@ static int hci_set_event_mask_sync(struct hci_dev *hdev)
if (lmp_bredr_capable(hdev)) {
events[4] |= 0x01; /* Flow Specification Complete */
- /* Don't set Disconnect Complete when suspended as that
- * would wakeup the host when disconnecting due to
- * suspend.
+ /* Don't set Disconnect Complete and mode change when
+ * suspended as that would wakeup the host when disconnecting
+ * due to suspend.
*/
- if (hdev->suspended)
+ if (hdev->suspended) {
events[0] &= 0xef;
+ events[2] &= 0xf7;
+ }
} else {
/* Use a different default for LE-only devices */
memset(events, 0, sizeof(events));
--
2.25.1
Dear Clancy,
Thank you for the patch.
Am 27.11.23 um 10:05 schrieb 15013537245@163.com:
> From: "clancy.shang" <clancy.shang@quectel.com>
It’d be great, if you spelled your name “Clancy Shang”.
$ git config --global user.name "Clancy Shang"
$ git commit -s --amend --author="Clancy Shang
<clancy.shang@quectel.com>"
> Steam deck in suspending state, but bt controller send hci
> mode change event to host. cause Steam Deck can't into sleep.
Could you please elaborate on the fix little more, for example, mention
the mode change (0xf7).
> Signed-off-by: clancy.shang <clancy.shang@quectel.com>
> ---
> net/bluetooth/hci_sync.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
> index a15ab0b874a9..a26a58cb2c38 100644
> --- a/net/bluetooth/hci_sync.c
> +++ b/net/bluetooth/hci_sync.c
> @@ -3800,12 +3800,14 @@ static int hci_set_event_mask_sync(struct hci_dev *hdev)
> if (lmp_bredr_capable(hdev)) {
> events[4] |= 0x01; /* Flow Specification Complete */
>
> - /* Don't set Disconnect Complete when suspended as that
> - * would wakeup the host when disconnecting due to
> - * suspend.
> + /* Don't set Disconnect Complete and mode change when
> + * suspended as that would wakeup the host when disconnecting
> + * due to suspend.
> */
> - if (hdev->suspended)
> + if (hdev->suspended) {
> events[0] &= 0xef;
> + events[2] &= 0xf7;
> + }
> } else {
> /* Use a different default for LE-only devices */
> memset(events, 0, sizeof(events));
Kind regards,
Paul Menzel
Hi,
On Mon, Nov 27, 2023 at 4:06 AM <15013537245@163.com> wrote:
>
> From: "clancy.shang" <clancy.shang@quectel.com>
>
> Steam deck in suspending state, but bt controller send hci
> mode change event to host. cause Steam Deck can't into sleep.
It probably makes sense to add the btmon trace showing the issue.
> Signed-off-by: clancy.shang <clancy.shang@quectel.com>
> ---
> net/bluetooth/hci_sync.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
> index a15ab0b874a9..a26a58cb2c38 100644
> --- a/net/bluetooth/hci_sync.c
> +++ b/net/bluetooth/hci_sync.c
> @@ -3800,12 +3800,14 @@ static int hci_set_event_mask_sync(struct hci_dev *hdev)
> if (lmp_bredr_capable(hdev)) {
> events[4] |= 0x01; /* Flow Specification Complete */
>
> - /* Don't set Disconnect Complete when suspended as that
> - * would wakeup the host when disconnecting due to
> - * suspend.
> + /* Don't set Disconnect Complete and mode change when
> + * suspended as that would wakeup the host when disconnecting
> + * due to suspend.
> */
> - if (hdev->suspended)
> + if (hdev->suspended) {
> events[0] &= 0xef;
> + events[2] &= 0xf7;
> + }
> } else {
> /* Use a different default for LE-only devices */
> memset(events, 0, sizeof(events));
> --
> 2.25.1
>
--
Luiz Augusto von Dentz
© 2016 - 2025 Red Hat, Inc.