Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b29bdba5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull thermal management update from Zhang Rui:
 "The most important one is to build thermal core and governor and cpu
  cooling code into one module.  This fixes a regression that thermal
  core does not work if it is built as module, since 3.7.  I'll backport
  them to stable kernel once those changes are in upstream.

  The largest batch is the thermal kernel-doc & coding style
  updates/cleanups from Eduardo.

  Highlights:

   - build all thermal framework code into one module to fix a
     regression that thermal does not work if it is built as module.

   - Marvell Armada 370/XP thermal sensor driver

   - thermal core/cpu cooling kernel-doc & coding style updates and
     cleanups.

   - Add Eduardo Valentin as thermal sub-maintainer, both in mailing
     list and patchwork.  He will help me on arm thermal drivers."

* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (68 commits)
  thermal: db8500_cpufreq_cooling: remove usage of IS_ERR_OR_NULL()
  thermal: thermal_core: remove usage of IS_ERR_OR_NULL
  thermal: cpu_cooling: improve line breaking
  thermal: cpu_cooling: alignment improvements
  thermal: cpu_cooling: remove checkpatch.pl warning
  thermal: cpu_cooling: remove trailing blank line
  thermal: cpu_cooling: align on open parenthesis
  thermal: cpu_cooling: standardize comment style
  thermal: cpu_cooling: standardize end of function
  thermal: cpu_cooling: remove trailing white spaces
  Thermal: update documentation for thermal_zone_device_register
  thermal: update kernel-doc for thermal_zone_device_register
  thermal: update kernel-doc for create_trip_attrs
  thermal: update kernel-doc for thermal_cooling_device_register
  thermal: update kernel-doc for thermal_zone_unbind_cooling_device
  thermal: update kernel-doc for thermal_zone_bind_cooling_device
  thermal: use EXPORT_SYMBOL_GPL
  thermal: rename notify_thermal_framework to thermal_notify_framework
  thermal: update driver license
  thermal: use strlcpy instead of strcpy
  ...
parents e0fd9aff de6558dc
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
* Marvell Armada 370/XP thermal management

Required properties:

- compatible:	Should be set to one of the following:
		marvell,armada370-thermal
		marvell,armadaxp-thermal

- reg:		Device's register space.
		Two entries are expected, see the examples below.
		The first one is required for the sensor register;
		the second one is required for the control register
		to be used for sensor initialization (a.k.a. calibration).

Example:

	thermal@d0018300 {
		compatible = "marvell,armada370-thermal";
                reg = <0xd0018300 0x4
		       0xd0018304 0x4>;
		status = "okay";
	};
+4 −4
Original line number Diff line number Diff line
@@ -13,11 +13,11 @@ Thermal emulation mode supports software debug for TMU's operation. User can set
manually with software code and TMU will read current temperature from user value not from
sensor's value.

Enabling CONFIG_EXYNOS_THERMAL_EMUL option will make this support in available.
When it's enabled, sysfs node will be created under
/sys/bus/platform/devices/'exynos device name'/ with name of 'emulation'.
Enabling CONFIG_THERMAL_EMULATION option will make this support available.
When it's enabled, sysfs node will be created as
/sys/devices/virtual/thermal/thermal_zone'zone id'/emul_temp.

The sysfs node, 'emulation', will contain value 0 for the initial state. When you input any
The sysfs node, 'emul_node', will contain value 0 for the initial state. When you input any
temperature you want to update to sysfs node, it automatically enable emulation mode and
current temperature will be changed into it.
(Exynos also supports user changable delay time which would be used to delay of
+16 −12
Original line number Diff line number Diff line
@@ -31,15 +31,17 @@ temperature) and throttle appropriate devices.
1. thermal sysfs driver interface functions

1.1 thermal zone device interface
1.1.1 struct thermal_zone_device *thermal_zone_device_register(char *name,
1.1.1 struct thermal_zone_device *thermal_zone_device_register(char *type,
		int trips, int mask, void *devdata,
		struct thermal_zone_device_ops *ops)
		struct thermal_zone_device_ops *ops,
		const struct thermal_zone_params *tzp,
		int passive_delay, int polling_delay))

    This interface function adds a new thermal zone device (sensor) to
    /sys/class/thermal folder as thermal_zone[0-*]. It tries to bind all the
    thermal cooling devices registered at the same time.

    name: the thermal zone name.
    type: the thermal zone type.
    trips: the total number of trip points this thermal zone supports.
    mask: Bit string: If 'n'th bit is set, then trip point 'n' is writeable.
    devdata: device private data
@@ -57,6 +59,12 @@ temperature) and throttle appropriate devices.
			will be fired.
	.set_emul_temp: set the emulation temperature which helps in debugging
			different threshold temperature points.
    tzp: thermal zone platform parameters.
    passive_delay: number of milliseconds to wait between polls when
	performing passive cooling.
    polling_delay: number of milliseconds to wait between polls when checking
	whether trip points have been crossed (0 for interrupt driven systems).


1.1.2 void thermal_zone_device_unregister(struct thermal_zone_device *tz)

@@ -265,6 +273,10 @@ emul_temp
	Unit: millidegree Celsius
	WO, Optional

	  WARNING: Be careful while enabling this option on production systems,
	  because userland can easily disable the thermal policy by simply
	  flooding this sysfs node with low temperature values.

*****************************
* Cooling device attributes *
*****************************
@@ -363,7 +375,7 @@ This function returns the thermal_instance corresponding to a given
{thermal_zone, cooling_device, trip_point} combination. Returns NULL
if such an instance does not exist.

5.3:notify_thermal_framework:
5.3:thermal_notify_framework:
This function handles the trip events from sensor drivers. It starts
throttling the cooling devices according to the policy configured.
For CRITICAL and HOT trip points, this notifies the respective drivers,
@@ -375,11 +387,3 @@ platform data is provided, this uses the step_wise throttling policy.
This function serves as an arbitrator to set the state of a cooling
device. It sets the cooling device to the deepest cooling state if
possible.

5.5:thermal_register_governor:
This function lets the various thermal governors to register themselves
with the Thermal framework. At run time, depending on a zone's platform
data, a particular governor is used for throttling.

5.6:thermal_unregister_governor:
This function unregisters a governor from the thermal framework.
+3 −0
Original line number Diff line number Diff line
@@ -8029,11 +8029,14 @@ F: arch/xtensa/

THERMAL
M:      Zhang Rui <rui.zhang@intel.com>
M:      Eduardo Valentin <eduardo.valentin@ti.com>
L:      linux-pm@vger.kernel.org
T:      git git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git
Q:      https://patchwork.kernel.org/project/linux-pm/list/
S:      Supported
F:      drivers/thermal/
F:      include/linux/thermal.h
F:      include/linux/cpu_cooling.h

THINGM BLINK(1) USB RGB LED DRIVER
M:	Vivien Didelot <vivien.didelot@savoirfairelinux.com>
+16 −12
Original line number Diff line number Diff line
@@ -67,15 +67,16 @@ config THERMAL_GOV_USER_SPACE
	  Enable this to let the user space manage the platform thermals.

config CPU_THERMAL
	tristate "generic cpu cooling support"
	bool "generic cpu cooling support"
	depends on CPU_FREQ
	select CPU_FREQ_TABLE
	help
	  This implements the generic cpu cooling mechanism through frequency
	  reduction, cpu hotplug and any other ways of reducing temperature. An
	  ACPI version of this already exists(drivers/acpi/processor_thermal.c).
	  reduction. An ACPI version of this already exists
	  (drivers/acpi/processor_thermal.c).
	  This will be useful for platforms using the generic thermal interface
	  and not the ACPI interface.

	  If you want this support, you should say Y here.

config THERMAL_EMULATION
@@ -86,6 +87,10 @@ config THERMAL_EMULATION
	  user can manually input temperature and test the different trip
	  threshold behaviour for simulation purpose.

	  WARNING: Be careful while enabling this option on production systems,
	  because userland can easily disable the thermal policy by simply
	  flooding this sysfs node with low temperature values.

config SPEAR_THERMAL
	bool "SPEAr thermal sensor driver"
	depends on PLAT_SPEAR
@@ -117,15 +122,6 @@ config EXYNOS_THERMAL
	  If you say yes here you get support for TMU (Thermal Management
	  Unit) on SAMSUNG EXYNOS series of SoC.

config EXYNOS_THERMAL_EMUL
	bool "EXYNOS TMU emulation mode support"
	depends on EXYNOS_THERMAL
	help
	  Exynos 4412 and 4414 and 5 series has emulation mode on TMU.
	  Enable this option will be make sysfs node in exynos thermal platform
	  device directory to support emulation mode. With emulation mode sysfs
	  node, you can manually input temperature to TMU for simulation purpose.

config DOVE_THERMAL
	tristate "Temperature sensor on Marvell Dove SoCs"
	depends on ARCH_DOVE
@@ -144,6 +140,14 @@ config DB8500_THERMAL
	  created. Cooling devices can be bound to the trip points to cool this
	  thermal zone if trip points reached.

config ARMADA_THERMAL
	tristate "Armada 370/XP thermal management"
	depends on ARCH_MVEBU
	depends on OF
	help
	  Enable this option if you want to have support for thermal management
	  controller present in Armada 370 and Armada XP SoC.

config DB8500_CPUFREQ_COOLING
	tristate "DB8500 cpufreq cooling"
	depends on ARCH_U8500
Loading