Subject: Re: [4/4] powerpc/85xx: support sleep feature on QorIQ SoCs with RCPM

From: "[email-masked]" <[email-masked]>
Date: Thu, 2 Apr 2015 11:18:11 +0000

________________________________________
From: Wood Scott-B07421
Sent: Tuesday, March 31, 2015 10:35
To: Zhao Chenhui-B35336
Cc: [email-masked]; [email-masked]; [email-masked]; Jin Zhengxiong-R64188
Subject: Re: [4/4] powerpc/85xx: support sleep feature on QorIQ SoCs with RCPM

On Thu, Mar 26, 2015 at 06:18:15PM +0800, chenhui zhao wrote:
> In sleep mode, the clocks of e500 cores and unused IP blocks is
> turned off. The IP blocks which are allowed to wake up the processor
> are still running.
>
> The sleep mode is equal to the Standby state in Linux. Use the
> command to enter sleep mode:
>   echo standby > /sys/power/state
>
> Signed-off-by: Chenhui Zhao <[email-masked]>
> ---
>  arch/powerpc/Kconfig                   |  3 +-
>  arch/powerpc/platforms/85xx/Kconfig    |  5 +++
>  arch/powerpc/platforms/85xx/Makefile   |  1 +
>  arch/powerpc/platforms/85xx/qoriq_pm.c | 59 ++++++++++++++++++++++++++++++++++
>  arch/powerpc/platforms/86xx/Kconfig    |  1 +
>  5 files changed, 67 insertions(+), 2 deletions(-)
>  create mode 100644 arch/powerpc/platforms/85xx/qoriq_pm.c
>
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 9846c83..162eb53 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -233,7 +233,7 @@ config ARCH_HIBERNATION_POSSIBLE
>  config ARCH_SUSPEND_POSSIBLE
>       def_bool y
>       depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \
> -                (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \
> +                FSL_SOC_BOOKE || PPC_86xx || PPC_PSERIES \
>                  || 44x || 40x
>
>  config PPC_DCR_NATIVE
> @@ -747,7 +747,6 @@ config FSL_PCI
>
>  config FSL_PMC
>       bool
> -     default y
>       depends on SUSPEND && (PPC_85xx || PPC_86xx)

Get rid of this depends line if you're going to use select instead.

> +static int qoriq_suspend_valid(suspend_state_t state)
> +{
> +     unsigned int pm_modes;
> +
> +     pm_modes = qoriq_pm_ops->get_pm_modes();
> +
> +     if ((state == PM_SUSPEND_STANDBY) && (pm_modes & FSL_PM_SLEEP))
> +             return 1;

Unnecessary parentheses around ==

-Scott

[chenhui] OK