From: sylvain.rochet@finsecur.com (Sylvain Rochet)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] USB: host: ehci_atmel: Add suspend/resume support
Date: Sat, 17 Jan 2015 17:03:04 +0100 [thread overview]
Message-ID: <20150117160304.GA21820@gradator.net> (raw)
In-Reply-To: <20150117135857.71dae08f@bbrezillon>
Hello Boris,
On Sat, Jan 17, 2015 at 01:58:57PM +0100, Boris Brezillon wrote:
> On Sat, 17 Jan 2015 11:43:00 +0100 Sylvain Rochet <sylvain.rochet@finsecur.com> wrote:
> >
> > I agree, but it depends on what we mean with standby vs mem, there
> > should be a difference between the two sleep mode.
>
> AFAIU PM_SUSPEND_MEM mode only implies putting the SDRAM in
> self-refresh mode to avoid waking the processor up for periodic SDRAM
> bank refresh.
> IMO this should not impact other peripherals behavior (BTW I haven't
> found any USB driver testing for this suspend state before disabling
> their clks).
This is my understanding as well.
> And what if we decide to implement runtime PM for this peripheral ?
> Shouldn't we disable these clks (which are one of the main source of
> power consumption of this IP) ?
Of course we should, disengaging clocks and stopping unused PLL and
crystals is almost the only way to save power.
Should I have added the "Acked-by: Alexandre Belloni
<alexandre.belloni@free-electrons.com>" on 1/2 ?
> > This behavior follows what the Atmel OHCI driver is currently doing.
>
> Yes, but it doesn't mean we should do the same ;-), especially since
> we're trying to remove this at91_suspend_entering_slow_clock function.
Arrg, this is not what I meant ;-), anyway, proposing as well a change
which remove the at91_suspend_entering_slow_clock() from OHCI.
I am not so happy with the global clocked boolean, but I guess this is
necessary if a suspended device gets removed.
> > > Is there such a big penalty when resuming the device if the PLL and
> > > peripheral clocks are disabled ?
> >
> > There is a penalty, starting up a PLL takes about 500 ?s, however I
> > can't decide if this is a small or a big penalty.
>
> That's indeed not negligible, but when one enters suspend, I guess it
> does expect some latency to resume from the suspended state.
Overall resume of all drivers takes about 300 ms, whichever chosen
suspend mode. Suspend to ram with slow clock mode enabled adds about 15 ms
of resume time.
As a side note, unfortunately AT91 slow clock mode only work on "recent"
boards with Wenyou changes on linux4sam/linux-at91/linux-3.10-at91
branch and is why I am still stuck to this branch (and the HLCDC FB
driver, but this is going to be merged soon from what I saw, YAY !).
Sylvain
next prev parent reply other threads:[~2015-01-17 16:03 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-16 19:41 [PATCH] USB: host: ehci_atmel: Add suspend/resume support Sylvain Rochet
2015-01-17 1:34 ` Alexandre Belloni
2015-01-17 9:36 ` Boris Brezillon
2015-01-17 10:43 ` Sylvain Rochet
2015-01-17 12:58 ` Boris Brezillon
2015-01-17 15:36 ` [PATCHv2 1/2] " Sylvain Rochet
2015-01-17 15:36 ` [PATCHv2 2/2] USB: host: ohci_at91: Stop/start USB PLL for all sleep modes Sylvain Rochet
2015-01-17 17:05 ` Boris Brezillon
2015-01-19 0:18 ` Alexandre Belloni
2015-01-17 16:55 ` [PATCHv2 1/2] USB: host: ehci_atmel: Add suspend/resume support Boris Brezillon
2015-01-17 16:03 ` Sylvain Rochet [this message]
2015-01-17 18:23 ` [PATCH 1/3] USB: host: ehci_atmel: Move global variables to private struct Sylvain Rochet
2015-01-17 18:23 ` [PATCH 2/3] USB: host: ohci_at91: " Sylvain Rochet
2015-01-17 18:23 ` [PATCH 3/3] USB: host: ohci_at91: usb_hcd_at91_probe(), remove useless stack initialisation Sylvain Rochet
2015-01-17 19:18 ` [PATCH 1/3] USB: host: ehci_atmel: Move global variables to private struct Boris Brezillon
2015-01-17 20:30 ` Alan Stern
2015-01-17 21:25 ` [PATCHv3 0/5] USB: host: Atmel OHCI and EHCI drivers improvements Sylvain Rochet
2015-01-17 21:25 ` [PATCHv3 1/5] USB: host: ehci_atmel: Add suspend/resume support Sylvain Rochet
2015-01-17 22:22 ` Sergei Shtylyov
2015-01-17 22:49 ` Sylvain Rochet
2015-01-18 8:14 ` Boris Brezillon
2015-01-18 19:55 ` Sergei Shtylyov
2015-01-17 21:25 ` [PATCHv3 2/5] USB: host: ohci_at91: Stop/start USB PLL for all sleep modes Sylvain Rochet
2015-01-17 21:25 ` [PATCHv3 3/5] USB: host: ehci_atmel: Move global variables to private struct Sylvain Rochet
2015-01-17 21:25 ` [PATCHv3 4/5] USB: host: ohci_at91: " Sylvain Rochet
2015-01-17 21:25 ` [PATCHv3 5/5] USB: host: ohci_at91: usb_hcd_at91_probe(), remove useless stack initialisation Sylvain Rochet
2015-01-18 17:20 ` [PATCHv3 0/5] USB: host: Atmel OHCI and EHCI drivers improvements Alan Stern
2015-01-18 19:36 ` [PATCHv4 0/6] " Sylvain Rochet
2015-01-18 19:36 ` [PATCHv4 1/6] USB: host: ehci-atmel: Add suspend/resume support Sylvain Rochet
2015-01-18 19:36 ` [PATCHv4 2/6] USB: host: ohci-at91: Use struct dev_pm_ops instead of struct platform_driver Sylvain Rochet
2015-01-18 19:36 ` [PATCHv4 3/6] USB: host: ohci-at91: Stop/start USB PLL for all sleep modes Sylvain Rochet
2015-01-18 21:17 ` Sylvain Rochet
2015-01-18 22:25 ` [PATCHv5 0/6] USB: host: Atmel OHCI and EHCI drivers improvements Sylvain Rochet
2015-01-18 22:25 ` [PATCHv5 1/6] USB: host: ehci-atmel: Add suspend/resume support Sylvain Rochet
2015-01-18 22:25 ` [PATCHv5 2/6] USB: host: ohci-at91: Use struct dev_pm_ops instead of struct platform_driver Sylvain Rochet
2015-01-18 22:25 ` [PATCHv5 3/6] USB: host: ehci-atmel: Move global variables to private struct Sylvain Rochet
2015-01-18 22:25 ` [PATCHv5 4/6] USB: host: ohci-at91: Fix wake-up support Sylvain Rochet
2015-01-18 22:25 ` [PATCHv5 5/6] USB: host: ohci-at91: Move global variables to private struct Sylvain Rochet
2015-01-18 22:25 ` [PATCHv5 6/6] USB: host: ohci-at91: usb_hcd_at91_probe(), remove useless stack initialisation Sylvain Rochet
2015-01-19 13:34 ` [PATCHv5 0/6] USB: host: Atmel OHCI and EHCI drivers improvements Nicolas Ferre
2015-01-19 13:43 ` Sylvain Rochet
2015-01-19 15:48 ` Alan Stern
2015-01-18 19:36 ` [PATCHv4 4/6] USB: host: ehci-atmel: Move global variables to private struct Sylvain Rochet
2015-01-18 19:36 ` [PATCHv4 5/6] USB: host: ohci-at91: " Sylvain Rochet
2015-01-18 19:36 ` [PATCHv4 6/6] USB: host: ohci-at91: usb_hcd_at91_probe(), remove useless stack initialisation Sylvain Rochet
2015-01-18 19:42 ` [PATCHv3 0/5] USB: host: Atmel OHCI and EHCI drivers improvements Sylvain Rochet
2015-01-17 21:27 ` [PATCH 1/3] USB: host: ehci_atmel: Move global variables to private struct Sylvain Rochet
2015-01-19 0:17 ` [PATCH] USB: host: ehci_atmel: Add suspend/resume support Alexandre Belloni
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=20150117160304.GA21820@gradator.net \
--to=sylvain.rochet@finsecur.com \
--cc=linux-arm-kernel@lists.infradead.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.