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 <--------------- > > TODO: > *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)? Rafael