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

Amit Kachhap amit.kachhap at gmail.com
Mon Jun 2 02:21:48 PDT 2014


Hi Javi,

On 5/29/14, Javi Merino <javi.merino at arm.com> wrote:
> 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.
nice catch. I somehow missed modifying this section.
I think the following changes should fix this,
-                       if (!strncmp("Processor", cdev->type,
-                                    sizeof("Processor")))
+                       if (!strncmp("thermal-cpufreq", cdev->type,
+                                    sizeof("thermal-cpufreq")))
                                thermal_zone_bind_cooling_device(tz,

>
> Cheers,
> Javi
>
>
>



More information about the linux-arm-kernel mailing list