Re: [PATCH 1/2] soc: renesas: rcar-sysc: Use GENPD_FLAG_ALWAYS_ON

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12 June 2017 at 11:23, Geert Uytterhoeven <geert+renesas@xxxxxxxxx> wrote:
> Improve handling of always-on PM domains by using the
> GENPD_FLAG_ALWAYS_ON flag introduced in commit ffaa42e8a40b7f10 ("PM /
> Domains: Enable users of genpd to specify always on PM domains").
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>

Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>

Kind regards
Uffe

> ---
>  drivers/soc/renesas/rcar-sysc.c | 28 ++++------------------------
>  drivers/soc/renesas/rcar-sysc.h |  2 --
>  2 files changed, 4 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/soc/renesas/rcar-sysc.c b/drivers/soc/renesas/rcar-sysc.c
> index dcad5c42a5e81c87..7c8da3c90011422f 100644
> --- a/drivers/soc/renesas/rcar-sysc.c
> +++ b/drivers/soc/renesas/rcar-sysc.c
> @@ -181,17 +181,6 @@ static int rcar_sysc_pd_power_off(struct generic_pm_domain *genpd)
>         struct rcar_sysc_pd *pd = to_rcar_pd(genpd);
>
>         pr_debug("%s: %s\n", __func__, genpd->name);
> -
> -       if (pd->flags & PD_NO_CR) {
> -               pr_debug("%s: Cannot control %s\n", __func__, genpd->name);
> -               return -EBUSY;
> -       }
> -
> -       if (pd->flags & PD_BUSY) {
> -               pr_debug("%s: %s busy\n", __func__, genpd->name);
> -               return -EBUSY;
> -       }
> -
>         return rcar_sysc_power_down(&pd->ch);
>  }
>
> @@ -200,12 +189,6 @@ static int rcar_sysc_pd_power_on(struct generic_pm_domain *genpd)
>         struct rcar_sysc_pd *pd = to_rcar_pd(genpd);
>
>         pr_debug("%s: %s\n", __func__, genpd->name);
> -
> -       if (pd->flags & PD_NO_CR) {
> -               pr_debug("%s: Cannot control %s\n", __func__, genpd->name);
> -               return 0;
> -       }
> -
>         return rcar_sysc_power_up(&pd->ch);
>  }
>
> @@ -223,8 +206,7 @@ static void __init rcar_sysc_pd_setup(struct rcar_sysc_pd *pd)
>                  * only be turned off if the CPU is not in use.
>                  */
>                 pr_debug("PM domain %s contains %s\n", name, "CPU");
> -               pd->flags |= PD_BUSY;
> -               gov = &pm_domain_always_on_gov;
> +               genpd->flags |= GENPD_FLAG_ALWAYS_ON;
>         } else if (pd->flags & PD_SCU) {
>                 /*
>                  * This domain contains an SCU and cache-controller, and
> @@ -232,19 +214,17 @@ static void __init rcar_sysc_pd_setup(struct rcar_sysc_pd *pd)
>                  * not in use.
>                  */
>                 pr_debug("PM domain %s contains %s\n", name, "SCU");
> -               pd->flags |= PD_BUSY;
> -               gov = &pm_domain_always_on_gov;
> +               genpd->flags |= GENPD_FLAG_ALWAYS_ON;
>         } else if (pd->flags & PD_NO_CR) {
>                 /*
>                  * This domain cannot be turned off.
>                  */
> -               pd->flags |= PD_BUSY;
> -               gov = &pm_domain_always_on_gov;
> +               genpd->flags |= GENPD_FLAG_ALWAYS_ON;
>         }
>
>         if (!(pd->flags & (PD_CPU | PD_SCU))) {
>                 /* Enable Clock Domain for I/O devices */
> -               genpd->flags = GENPD_FLAG_PM_CLK;
> +               genpd->flags |= GENPD_FLAG_PM_CLK;
>                 if (has_cpg_mstp) {
>                         genpd->attach_dev = cpg_mstp_attach_dev;
>                         genpd->detach_dev = cpg_mstp_detach_dev;
> diff --git a/drivers/soc/renesas/rcar-sysc.h b/drivers/soc/renesas/rcar-sysc.h
> index 07edb049a401196c..1a5bebaf54ba191c 100644
> --- a/drivers/soc/renesas/rcar-sysc.h
> +++ b/drivers/soc/renesas/rcar-sysc.h
> @@ -20,8 +20,6 @@
>  #define PD_SCU         BIT(1)  /* Area contains SCU and L2 cache */
>  #define PD_NO_CR       BIT(2)  /* Area lacks PWR{ON,OFF}CR registers */
>
> -#define PD_BUSY                BIT(3)  /* Busy, for internal use only */
> -
>  #define PD_CPU_CR      PD_CPU            /* CPU area has CR (R-Car H1) */
>  #define PD_CPU_NOCR    PD_CPU | PD_NO_CR /* CPU area lacks CR (R-Car Gen2/3) */
>  #define PD_ALWAYS_ON   PD_NO_CR          /* Always-on area */
> --
> 2.7.4
>



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux