Re: [PATCH v1 6/6] ACPI: thermal: processor: Use the generic cpufreq infrastructure

Javi Merino
2014-05-29T12:42:56Z

Hi Amit,

On Thu, May 29, 2014 at 09:15:34AM +0100, Amit Daniel Kachhap wrote:
> This patch upgrades the ACPI cpufreq cooling portions to use the generic
> cpufreq cooling infrastructure. There should not be any functionality
> related changes as the same behaviour is provided by the generic
> cpufreq APIs with the notifier mechanism.
>
> Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
> ---
> drivers/acpi/processor_driver.c | 6 +-
> drivers/acpi/processor_thermal.c | 235 ++++++++++++++++++--------------------
> include/acpi/processor.h | 3 +-
> 3 files changed, 115 insertions(+), 129 deletions(-)
>
> diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
> index 7f70f31..10aba4a 100644
> --- a/drivers/acpi/processor_driver.c
> +++ b/drivers/acpi/processor_driver.c
> @@ -36,6 +36,7 @@
> #include <linux/cpuidle.h>
> #include <linux/slab.h>
> #include <linux/acpi.h>
> +#include <linux/cpu_cooling.h>
>
> #include <acpi/processor.h>
>
> @@ -178,8 +179,7 @@ static int __acpi_processor_start(struct acpi_device *device)
> if (!cpuidle_get_driver() || cpuidle_get_driver() == &acpi_idle_driver)
> acpi_processor_power_init(pr);
>
> - pr->cdev = thermal_cooling_device_register("Processor", device,
> - &processor_cooling_ops);
> + pr->cdev = acpi_processor_cooling_register(device);

With this you have removed the only cooling device whose type was
"Processor". There's special code for dealing with this cooling
device in drivers/thermal/thermal_core.c:passive_store():

list_for_each_entry(cdev, &thermal_cdev_list, node) {
if (!strncmp("Processor", cdev->type,
sizeof("Processor")))
thermal_zone_bind_cooling_device(tz,
THERMAL_TRIPS_NONE, cdev,
THERMAL_NO_LIMIT,
THERMAL_NO_LIMIT);
}
mutex_unlock(&thermal_list_lock);
if (!tz->passive_delay)

With your change, that code is now "dead" as it can't do anything. No
I don't know what should you do with it, either remove it or make it
match the cpufreq cooling device. But this patch should deal with
that code as well.

Cheers,
Javi