On Mon, Jun 7, 2021 at 12:04 AM Samuel Holland <samuel@xxxxxxxxxxxx> wrote: > > On 6/2/21 6:23 AM, Anup Patel wrote: > > The generic power domain related code in PSCI domain driver is largely > > independent of PSCI and can be shared with RISC-V SBI domain driver > > hence we factor-out this code into dt_idle_genpd.c and dt_idle_genpd.h. > > > > Signed-off-by: Anup Patel <anup.patel@xxxxxxx> > > Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > > --- > > MAINTAINERS | 7 + > > drivers/cpuidle/Kconfig | 4 + > > drivers/cpuidle/Kconfig.arm | 1 + > > drivers/cpuidle/Makefile | 1 + > > drivers/cpuidle/cpuidle-psci-domain.c | 138 +------------------ > > drivers/cpuidle/cpuidle-psci.h | 15 ++- > > drivers/cpuidle/dt_idle_genpd.c | 182 ++++++++++++++++++++++++++ > > drivers/cpuidle/dt_idle_genpd.h | 50 +++++++ > > 8 files changed, 263 insertions(+), 135 deletions(-) > > create mode 100644 drivers/cpuidle/dt_idle_genpd.c > > create mode 100644 drivers/cpuidle/dt_idle_genpd.h > > > ... > > diff --git a/drivers/cpuidle/dt_idle_genpd.h b/drivers/cpuidle/dt_idle_genpd.h > > new file mode 100644 > > index 000000000000..a8a3bad3cb7f > > --- /dev/null > > +++ b/drivers/cpuidle/dt_idle_genpd.h > > @@ -0,0 +1,50 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +#ifndef __DT_IDLE_GENPD > > +#define __DT_IDLE_GENPD > > + > > +struct device_node; > > +struct generic_pm_domain; > > + > > +#ifdef CONFIG_DT_IDLE_GENPD > > + > > +void dt_idle_pd_free(struct generic_pm_domain *pd); > > + > > +struct generic_pm_domain *dt_idle_pd_alloc(struct device_node *np, > > + int (*parse_state)(struct device_node *, u32 *)); > > + > > +int dt_idle_pd_init_topology(struct device_node *np); > > + > > +struct device *dt_idle_attach_cpu(int cpu, const char *name); > > + > > +void dt_idle_detach_cpu(struct device *dev); > > + > > +#else > > + > > +static inline void dt_idle_pd_free(struct generic_pm_domain *pd) > > +{ > > +} > > + > > +static inline struct generic_pm_domain *dt_idle_pd_alloc( > > + struct device_node *np, > > + int (*parse_state)(struct device_node *, u32 *)); > > In file included from drivers/cpuidle/cpuidle-sbi.c:27: > drivers/cpuidle/dt_idle_genpd.h:29:1: error: expected identifier or '(' > before '{' token > 29 | { > | ^ > > Looks like you have a stray semicolon here. Okay, I will fix this in the next revision. Regards, Anup > > > +{ > > + return NULL; > > +} > > + > > +static inline int dt_idle_pd_init_topology(struct device_node *np) > > +{ > > + return 0; > > +} > > + > > +static inline struct device *dt_idle_attach_cpu(int cpu, const char *name) > > +{ > > + return NULL; > > +} > > + > > +static inline void dt_idle_detach_cpu(struct device *dev) > > +{ > > +} > > + > > +#endif > > + > > +#endif > > >