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

Javi Merino javi.merino at arm.com
Thu May 29 05:42:49 PDT 2014


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 at 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





More information about the linux-arm-kernel mailing list