Re: [linux-pm] [PATCH RESEND] thermal: add generic cpufreq cooling implementation
From: Rafael J. Wysocki
Date: Mon Sep 10 2012 - 16:36:41 EST
On Monday, September 10, 2012, Zhang Rui wrote:
> Refreshed to remove the notifier mechanism as we do not have a real user of it.
> if there is no problem, I'll apply the whole patch set to thermal next tree.
> From: Amit Daniel Kachhap <amit.kachhap@xxxxxxxxxx>
> Date: Thu, 16 Aug 2012 17:11:40 +0530
> This patchset introduces a new generic cooling device based on cpufreq
> that can be used on non-ACPI platforms. As a proof of concept, we have
> drivers for the following platforms using this mechanism now:
> * Samsung Exynos (Exynos4 and Exynos5) in the current patchset.
> * Freescale i.MX (git://git.linaro.org/people/amitdanielk/linux.git imx6q_thermal)
> There is a small change in cpufreq cooling registration APIs, so a minor
> change is needed for Freescale platforms.
> Brief Description:
> 1) The generic cooling devices code is placed inside driver/thermal/*
> as placing inside acpi folder will need un-necessary enabling of acpi
> code. This code is architecture independent.
> 2) This patchset adds generic cpu cooling low level implementation
> through frequency clipping. In future, other cpu related cooling
> devices may be added here. An ACPI version of this already exists
> (drivers/acpi/processor_thermal.c) .But this will be useful for
> platforms like ARM using the generic thermal interface along with the
> generic cpu cooling devices. The cooling device registration API's
> return cooling device pointers which can be easily binded with the
> thermal zone trip points. The important APIs exposed are,
> a) struct thermal_cooling_device *cpufreq_cooling_register(
> struct cpumask *clip_cpus)
> b) void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev)
> 3) Samsung exynos platform thermal implementation is done using the
> generic cpu cooling APIs and the new trip type. The temperature sensor
> driver present in the hwmon folder(registered as hwmon driver) is moved
> to thermal folder and registered as a thermal driver.
> A simple data/control flow diagrams is shown below,
> Core Linux thermal <-----> Exynos thermal interface <----- Temperature Sensor
> | |
> \|/ |
> Cpufreq cooling device <---------------
> *Will send the DT enablement patches later after the driver is merged.
> This patch:
> Add support for generic cpu thermal cooling low level implementations
> using frequency scaling up/down based on the registration parameters.
> Different cpu related cooling devices can be registered by the user and
> the binding of these cooling devices to the corresponding trip points can
> be easily done as the registration APIs return the cooling device pointer.
> The user of these APIs are responsible for passing clipping frequency .
> The drivers can also register to recieve notification about any cooling
> action called.
> Cc: Guenter Roeck <guenter.roeck@xxxxxxxxxxxx>
> Cc: SangWook Ju <sw.ju@xxxxxxxxxxx>
> Cc: Durgadoss <durgadoss.r@xxxxxxxxx>
> Cc: Len Brown <lenb@xxxxxxxxxx>
> Cc: Jean Delvare <khali@xxxxxxxxxxxx>
> Cc: Kyungmin Park <kmpark@xxxxxxxxxxxxx>
> Cc: Kukjin Kim <kgene.kim@xxxxxxxxxxx>
> Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Amit Daniel Kachhap <amit.daniel@xxxxxxxxxxx>
Can you please resend the patch inline (i.e. not as an attachment)?
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/