From: Thierry Reding <thierry.reding@gmail.com>
To: JC Kuo <jckuo@nvidia.com>
Cc: gregkh@linuxfoundation.org, robh@kernel.org,
jonathanh@nvidia.com, kishon@ti.com, linux-tegra@vger.kernel.org,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, nkristam@nvidia.com
Subject: Re: [PATCH v6 15/15] xhci: tegra: Enable ELPG for runtime/system PM
Date: Tue, 19 Jan 2021 15:04:15 +0100 [thread overview]
Message-ID: <YAbm39gww7F3okLP@ulmo> (raw)
In-Reply-To: <20210119085546.725005-16-jckuo@nvidia.com>
[-- Attachment #1: Type: text/plain, Size: 1899 bytes --]
On Tue, Jan 19, 2021 at 04:55:46PM +0800, JC Kuo wrote:
> This commit implements the complete programming sequence for ELPG
> entry and exit.
>
> 1. At ELPG entry, invokes tegra_xusb_padctl_enable_phy_sleepwalk()
> and tegra_xusb_padctl_enable_phy_wake() to configure XUSB PADCTL
> sleepwalk and wake detection circuits to maintain USB lines level
> and respond to wake events (wake-on-connect, wake-on-disconnect,
> device-initiated-wake).
>
> 2. At ELPG exit, invokes tegra_xusb_padctl_disable_phy_sleepwalk()
> and tegra_xusb_padctl_disable_phy_wake() to disarm sleepwalk and
> wake detection circuits.
>
> At runtime suspend, XUSB host controller can enter ELPG to reduce
> power consumption. When XUSB PADCTL wake detection circuit detects
> a wake event, an interrupt will be raised. xhci-tegra driver then
> will invoke pm_runtime_resume() for xhci-tegra.
>
> Runtime resume could also be triggered by protocol drivers, this is
> the host-initiated-wake event. At runtime resume, xhci-tegra driver
> brings XUSB host controller out of ELPG to handle the wake events.
>
> The same ELPG enter/exit procedure will be performed for system
> suspend/resume path so USB devices can remain connected across SC7.
>
> Signed-off-by: JC Kuo <jckuo@nvidia.com>
> ---
> v6:
> fix compiling warning: extra tokens at end of #ifdef directive
> v5:
> avoid using xhci_get_rhub()
> protect ELPG routines with (CONFIG_PM || CONFIG_PM_SLEEP)
> v4:
> reshuffle the code to avoid these pre-declarations
> v3:
> use 'unsigned int' for PHY index
> remove unnecessary 'else'
> drop IRQF_TRIGGER_HIGH when invokes devm_request_threaded_irq()
>
> drivers/usb/host/xhci-tegra.c | 407 ++++++++++++++++++++++++++++++----
> 1 file changed, 370 insertions(+), 37 deletions(-)
Acked-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2021-01-19 23:37 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-19 8:55 [PATCH v6 00/15] Tegra XHCI controller ELPG support JC Kuo
2021-01-19 8:55 ` [PATCH v6 01/15] clk: tegra: Add PLLE HW power sequencer control JC Kuo
2021-01-19 14:11 ` Thierry Reding
2021-02-11 3:06 ` Stephen Boyd
2021-01-19 8:55 ` [PATCH v6 02/15] clk: tegra: Don't enable PLLE HW sequencer at init JC Kuo
2021-01-19 14:12 ` Thierry Reding
2021-02-11 3:06 ` Stephen Boyd
2021-01-19 8:55 ` [PATCH v6 03/15] phy: tegra: xusb: Move usb3 port init for Tegra210 JC Kuo
2021-01-19 8:55 ` [PATCH v6 04/15] phy: tegra: xusb: tegra210: Do not reset UPHY PLL JC Kuo
2021-01-19 13:52 ` Thierry Reding
2021-01-20 1:42 ` JC Kuo
2021-01-19 8:55 ` [PATCH v6 05/15] phy: tegra: xusb: Rearrange UPHY init on Tegra210 JC Kuo
2021-01-19 8:55 ` [PATCH v6 06/15] phy: tegra: xusb: Add Tegra210 lane_iddq operation JC Kuo
2021-01-19 8:55 ` [PATCH v6 07/15] phy: tegra: xusb: Add sleepwalk and suspend/resume JC Kuo
2021-01-19 13:54 ` Thierry Reding
2021-01-19 8:55 ` [PATCH v6 08/15] soc/tegra: pmc: Provide USB sleepwalk register map JC Kuo
2021-01-19 8:55 ` [PATCH v6 09/15] arm64: tegra210: XUSB PADCTL add "nvidia,pmc" prop JC Kuo
2021-01-19 8:55 ` [PATCH v6 10/15] dt-bindings: phy: tegra-xusb: Add nvidia,pmc prop JC Kuo
2021-01-19 8:55 ` [PATCH v6 11/15] phy: tegra: xusb: Add wake/sleepwalk for Tegra210 JC Kuo
2021-01-19 13:58 ` Thierry Reding
2021-01-19 8:55 ` [PATCH v6 12/15] phy: tegra: xusb: Tegra210 host mode VBUS control JC Kuo
2021-01-19 8:55 ` [PATCH v6 13/15] phy: tegra: xusb: Add wake/sleepwalk for Tegra186 JC Kuo
2021-01-19 13:59 ` Thierry Reding
2021-01-19 8:55 ` [PATCH v6 14/15] usb: host: xhci-tegra: Unlink power domain devices JC Kuo
2021-01-19 14:04 ` Thierry Reding
2021-01-19 8:55 ` [PATCH v6 15/15] xhci: tegra: Enable ELPG for runtime/system PM JC Kuo
2021-01-19 14:04 ` Thierry Reding [this message]
2021-01-19 14:07 ` [PATCH v6 00/15] Tegra XHCI controller ELPG support Thierry Reding
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=YAbm39gww7F3okLP@ulmo \
--to=thierry.reding@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=jckuo@nvidia.com \
--cc=jonathanh@nvidia.com \
--cc=kishon@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=nkristam@nvidia.com \
--cc=robh@kernel.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.