Le 05/02/2015 07:01, Wenyou Yang a écrit :
> From: Sylvain Rochet <sylvain.roc...@finsecur.com>
> 
> Assume USB PLL and PLL B are already stopped before entering sleep mode,
> print a warning if this isn't the case.
> 
> Removed PLL B from slow clock code, all drivers are supposed to properly
> unprepare clocks.
> 
> Signed-off-by: Sylvain Rochet <sylvain.roc...@finsecur.com>
> Acked-by: Wenyou.Yang <wenyou.y...@atmel.com>

I keep this one for 4.1 as all the USB drivers are not converted yet.

Bye,


> ---
>  arch/arm/mach-at91/pm.c           |   12 ++++++++++++
>  arch/arm/mach-at91/pm_slowclock.S |   31 -------------------------------
>  2 files changed, 12 insertions(+), 31 deletions(-)
> 
> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
> index 9b15169..1cfd6e9 100644
> --- a/arch/arm/mach-at91/pm.c
> +++ b/arch/arm/mach-at91/pm.c
> @@ -98,6 +98,18 @@ static int at91_pm_verify_clocks(void)
>               }
>       }
>  
> +     /* Drivers should have previously suspended USB PLL */
> +     if (at91_pmc_read(AT91_CKGR_UCKR) & AT91_PMC_UPLLEN) {
> +             pr_err("AT91: PM - Suspend-to-RAM with USB PLL running\n");
> +             return 0;
> +     }
> +
> +     /* Drivers should have previously suspended PLL B */
> +     if (at91_pmc_read(AT91_PMC_SR) & AT91_PMC_LOCKB) {
> +             pr_err("AT91: PM - Suspend-to-RAM with PLL B running\n");
> +             return 0;
> +     }
> +
>       return 1;
>  }
>  
> diff --git a/arch/arm/mach-at91/pm_slowclock.S 
> b/arch/arm/mach-at91/pm_slowclock.S
> index 79dfdbe..75d8b19 100644
> --- a/arch/arm/mach-at91/pm_slowclock.S
> +++ b/arch/arm/mach-at91/pm_slowclock.S
> @@ -68,15 +68,6 @@ tmp2       .req    r5
>       beq     1b
>       .endm
>  
> -/*
> - * Wait until PLLB has locked.
> - */
> -     .macro wait_pllblock
> -1:   ldr     tmp1, [pmc, #AT91_PMC_SR]
> -     tst     tmp1, #AT91_PMC_LOCKB
> -     beq     1b
> -     .endm
> -
>       .text
>  
>  /* void at91_slow_clock(void __iomem *pmc, void __iomem *sdramc,
> @@ -182,13 +173,6 @@ sdr_sr_done:
>       orr     tmp1, tmp1, #(1 << 29)          /* bit 29 always set */
>       str     tmp1, [pmc, #AT91_CKGR_PLLAR]
>  
> -     /* Save PLLB setting and disable it */
> -     ldr     tmp1, [pmc, #AT91_CKGR_PLLBR]
> -     str     tmp1, .saved_pllbr
> -
> -     mov     tmp1, #AT91_PMC_PLLCOUNT
> -     str     tmp1, [pmc, #AT91_CKGR_PLLBR]
> -
>       /* Turn off the main oscillator */
>       ldr     tmp1, [pmc, #AT91_CKGR_MOR]
>       bic     tmp1, tmp1, #AT91_PMC_MOSCEN
> @@ -204,18 +188,6 @@ sdr_sr_done:
>  
>       wait_moscrdy
>  
> -     /* Restore PLLB setting */
> -     ldr     tmp1, .saved_pllbr
> -     str     tmp1, [pmc, #AT91_CKGR_PLLBR]
> -
> -     tst     tmp1, #(AT91_PMC_MUL &  0xff0000)
> -     bne     1f
> -     tst     tmp1, #(AT91_PMC_MUL & ~0xff0000)
> -     beq     2f
> -1:
> -     wait_pllblock
> -2:
> -
>       /* Restore PLLA setting */
>       ldr     tmp1, .saved_pllar
>       str     tmp1, [pmc, #AT91_CKGR_PLLAR]
> @@ -294,9 +266,6 @@ ram_restored:
>  .saved_pllar:
>       .word 0
>  
> -.saved_pllbr:
> -     .word 0
> -
>  .saved_sam9_lpr:
>       .word 0
>  
> 


-- 
Nicolas Ferre
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to