From: Lukas Wunner <lukas@wunner.de>
To: Hans de Goede <hdegoede@redhat.com>
Cc: "Marcel Holtmann" <marcel@holtmann.org>,
"Gustavo Padovan" <gustavo@padovan.org>,
"Johan Hedberg" <johan.hedberg@gmail.com>,
"Frédéric Danis" <frederic.danis.oss@gmail.com>,
linux-bluetooth@vger.kernel.org, linux-serial@vger.kernel.org,
linux-acpi@vger.kernel.org
Subject: Re: [PATCH 4.16 REGRESSION fix 1/2] Revert "Bluetooth: hci_bcm: Streamline runtime PM code"
Date: Thu, 15 Mar 2018 09:32:09 +0100 [thread overview]
Message-ID: <20180315083209.GA21373@wunner.de> (raw)
In-Reply-To: <20180314220603.7559-2-hdegoede@redhat.com>
On Wed, Mar 14, 2018 at 11:06:02PM +0100, Hans de Goede wrote:
> This reverts commit 43fff7683468 ("Bluetooth: hci_bcm: Streamline runtime
> PM code"). The commit msg for this commit states "No functional change
> intended.", but replacing:
>
> pm_runtime_get();
> pm_runtime_mark_last_busy();
> pm_runtime_put_autosuspend();
>
> with:
>
> pm_request_resume();
>
> Does result in a functional change, pm_request_resume() only calls
> pm_runtime_mark_last_busy() if the device was suspended before the call.
>
> This results in the following happening:
>
> 1) Device is runtime suspended
> 2) Device drives host_wake IRQ logically high as it starts receiving data
> 3) bcm_host_wake() gets called, causes the device to runtime-resume,
> current time gets marked as last_busy time
> 4) After 5 seconds the autosuspend timer expires and the dev autosuspends
> as no one has been calling pm_runtime_mark_last_busy(), the device was
> resumed during those 5 seconds, so all the pm_request_resume() calls
> while receiving data and/or bcm_host_wake() calls were nops
> 5) If 4) happens while the device has (just received) data in its buffer to
> be read by the host the IRQ line is *already* / still logically high
> when we autosuspend and since we use an edge triggered IRQ, the IRQ
> will never trigger, causing the device to get stuck in suspend
>
> Therefor this commit has to be reverted, so that we avoid the device
> getting stuck in suspend.
>
> Cc: Lukas Wunner <lukas@wunner.de>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Lukas Wunner <lukas@wunner.de>
next prev parent reply other threads:[~2018-03-15 8:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-14 22:06 [PATCH 4.16 REGRESSION fix 0/2] Bluetooth: Fix hci_bcm BT devices getting stuck in runtime-suspended status Hans de Goede
2018-03-14 22:06 ` [PATCH 4.16 REGRESSION fix 1/2] Revert "Bluetooth: hci_bcm: Streamline runtime PM code" Hans de Goede
2018-03-14 22:16 ` Lukas Wunner
2018-03-14 22:23 ` Hans de Goede
2018-03-14 22:38 ` Lukas Wunner
2018-03-15 7:49 ` Hans de Goede
2018-03-15 8:14 ` Lukas Wunner
2018-03-15 10:23 ` Hans de Goede
2018-03-15 13:15 ` Marcel Holtmann
2018-03-15 13:49 ` Hans de Goede
2018-03-15 8:32 ` Lukas Wunner [this message]
2018-03-15 18:40 ` Marcel Holtmann
2018-03-14 22:06 ` [PATCH 4.16 REGRESSION fix 2/2] Bluetooth: hci_bcm: Set pulsed_host_wake flag in sleep parameters Hans de Goede
2018-03-14 22:22 ` Lukas Wunner
2018-03-15 18:40 ` Marcel Holtmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180315083209.GA21373@wunner.de \
--to=lukas@wunner.de \
--cc=frederic.danis.oss@gmail.com \
--cc=gustavo@padovan.org \
--cc=hdegoede@redhat.com \
--cc=johan.hedberg@gmail.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=marcel@holtmann.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.