Patch "clk: at91: pmc: Wait for clocks when resuming" has been added to the 4.15-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
clk: at91: pmc: Wait for clocks when resuming
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
clk-at91-pmc-wait-for-clocks-when-resuming.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Mar 22 14:03:40 CET 2018
From: Romain Izard <[email protected]>
Date: Mon, 11 Dec 2017 17:55:33 +0100
Subject: clk: at91: pmc: Wait for clocks when resuming
From: Romain Izard <[email protected]>
[ Upstream commit 960e1c4d93be86d3b118fe22d4edc69e401b28b5 ]
Wait for the syncronization of all clocks when resuming, not only the UPLL clock. Do not use regmap_read_poll_timeout, as it will call BUG() when interrupts are masked, which is the case in here.
--- drivers/clk/at91/pmc.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-)
drivers/clk/at91/pmc.c +16 -8
@@ -107,10 +107,20 @@ static int pmc_suspend(void)return 0 ; } +static bool pmc_ready (unsigned int mask) +{ +unsigned int status; + +regmap_read (pmcreg,AT91_PMC_SR , &status); + +return ((status & mask) == mask) ?1 :0 ; +} +static void pmc_resume (void ) { -int i, ret =0 ; +int i;u32 tmp; +u32 mask =AT91_PMC_MCKRDY |AT91_PMC_LOCKA ;regmap_read (pmcreg,AT91_PMC_MCKR , &tmp);if (pmc_cache.mckr != tmp)
@@ -134,13 +144,11 @@ static void pmc_resume(void) AT91_PMC_PCR_CMD); } -if (pmc_cache.uckr &AT91_PMC_UPLLEN ) { - ret =regmap_read_poll_timeout (pmcreg,AT91_PMC_SR , tmp, - !(tmp &AT91_PMC_LOCKU ), -10 ,5000 ); -if (ret) -pr_crit ("USB PLL didn't lock when resuming\n" ); - } +if (pmc_cache.uckr &AT91_PMC_UPLLEN ) + mask |=AT91_PMC_LOCKU ; + +while (!pmc_ready (mask)) +cpu_relax (); }static struct syscore_ops pmc_syscore_ops = {
Patches currently in stable-queue which might be from [email protected] are
queue-4.15/clk-at91-pmc-wait-for-clocks-when-resuming.patch