Re: [PATCH] cpufreq: create cooling device based on ACPI

From: Rafael J. Wysocki
Date: Fri Apr 28 2023 - 07:37:46 EST


On Fri, Apr 28, 2023 at 9:19 AM <wangyouwan@xxxxxxx> wrote:
>
> From: youwan Wang <wangyouwan@xxxxxxx>
>
> When using the "scpi_cpufreq" driver, an error
> occurs:cpufreq_cooling: OF node not available for cpu*.
> The current computer motherboard is using ACPI firmware.
> Go to see that the error is caused by calling the
> "of_cpufreq_cooling_register" interface.
> comment:create cpufreq cooling device based on DT.
>
> Signed-off-by: youwan Wang <wangyouwan@xxxxxxx>
> ---
> drivers/cpufreq/cpufreq.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 6b52ebe5a890..3418c68959d5 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -1528,8 +1528,13 @@ static int cpufreq_online(unsigned int cpu)
> if (cpufreq_driver->ready)
> cpufreq_driver->ready(policy);
>
> - if (cpufreq_thermal_control_enabled(cpufreq_driver))
> + if (cpufreq_thermal_control_enabled(cpufreq_driver)) {
> +#ifdef CONFIG_ACPI
> + policy->cdev = cpufreq_cooling_register(policy);
> +#else
> policy->cdev = of_cpufreq_cooling_register(policy);
> +#endif

Please avoid adding #ifdefs like this in random places.

Moreover, what if the kernel supports ACPI and the platform is DT-based?

> + }
>
> pr_debug("initialization complete\n");
>
> --