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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 02, 2014 at 10:21:48AM +0100, Amit Kachhap wrote:
> Hi Javi,
> 
> On 5/29/14, Javi Merino <javi.merino@xxxxxxx> 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@xxxxxxxxxxx>
> >> ---
> >>  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,
> 

That should do it.  I don't really understand why this code is
specifically looking for ACPI processor cooling devices but I guess
that's the least disrupting change you can make.

Cheers,
Javi

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux