Re: [PATCH v5 5/8] cpuidle: Factor-out power domain related code from PSCI domain driver

From: Samuel Holland
Date: Sun Jun 06 2021 - 14:35:14 EST


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.

> +{
> + 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
>