Commit badf1f90 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'thermal-intel'

Merge thermal control changes related to Intel platforms for 6.3-rc1:

 - Rework ACPI helper functions for thermal control to retrieve a trip
   point temperature instead of initializing a trip point objetc (Rafael
   Wysocki).

 - Clean up and improve the int340x thermal driver ((Rafael Wysocki).

 - Simplify and clean up the intel_pch thermal driver ((Rafael Wysocki).

 - Fix the Intel powerclamp thermal driver and make it use the common
   idle injection framework (Srinivas Pandruvada).

 - Add two module parameters, cpumask and max_idle, to the Intel powerclamp
   thermal driver to allow it to affect only a specific subset of CPUs
   instead of all of them (Srinivas Pandruvada).

 - Make the Intel quark_dts thermal driver Use generic trip point
   objects instead of its own trip point representation (Daniel
   Lezcano).

 - Add toctree entry for thermal documents and fix two issues in the
   Intel powerclamp driver documentation (Bagas Sanjaya).

* thermal-intel: (25 commits)
  Documentation: powerclamp: Fix numbered lists formatting
  Documentation: powerclamp: Escape wildcard in cpumask description
  Documentation: admin-guide: Add toctree entry for thermal docs
  thermal: intel: powerclamp: Add two module parameters
  Documentation: admin-guide: Move intel_powerclamp documentation
  thermal: intel: powerclamp: Fix duration module parameter
  thermal: intel: powerclamp: Return last requested state as cur_state
  thermal: intel: quark_dts: Use generic trip points
  thermal: intel: powerclamp: Use powercap idle-inject feature
  powercap: idle_inject: Add update callback
  powercap: idle_inject: Export symbols
  thermal: intel: powerclamp: Fix cur_state for multi package system
  thermal: intel: intel_pch: Drop struct board_info
  thermal: intel: intel_pch: Rename board ID symbols
  thermal: intel: intel_pch: Fold suspend and resume routines into their callers
  thermal: intel: intel_pch: Fold two functions into their callers
  thermal: intel: intel_pch: Eliminate device operations object
  thermal: intel: intel_pch: Rename device operations callbacks
  thermal: intel: intel_pch: Eliminate redundant return pointers
  thermal: intel: intel_pch: Make pch_wpt_add_acpi_psv_trip() return int
  ...
parents c3bd6d53 fef1f0be
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -116,6 +116,7 @@ configure specific aspects of kernel behavior to your liking.
   svga
   syscall-user-dispatch
   sysrq
   thermal/index
   thunderbolt
   ufs
   unicode
+8 −0
Original line number Diff line number Diff line
=================
Thermal Subsystem
=================

.. toctree::
   :maxdepth: 1

   intel_powerclamp
+30 −5
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ By:
	    - Generic Thermal Layer (sysfs)
	    - Kernel APIs (TBD)

	(*) Module Parameters

INTRODUCTION
============

@@ -153,10 +155,12 @@ b) determine the amount of compensation needed at each target ratio
Compensation to each target ratio consists of two parts:

	a) steady state error compensation

	   This is to offset the error occurring when the system can
	   enter idle without extra wakeups (such as external interrupts).

	b) dynamic error compensation

	   When an excessive amount of wakeups occurs during idle, an
	   additional idle ratio can be added to quiet interrupts, by
	   slowing down CPU activities.
@@ -281,6 +285,7 @@ cur_state returns value -1 instead of 0 which is to avoid confusing
100% busy state with the disabled state.

Example usage:

- To inject 25% idle time::

	$ sudo sh -c "echo 25 > /sys/class/thermal/cooling_device80/cur_state
@@ -318,3 +323,23 @@ device, a PID based userspace thermal controller can manage to
control CPU temperature effectively, when no other thermal influence
is added. For example, a UltraBook user can compile the kernel under
certain temperature (below most active trip points).

Module Parameters
=================

``cpumask`` (RW)
	A bit mask of CPUs to inject idle. The format of the bitmask is same as
	used in other subsystems like in /proc/irq/\*/smp_affinity. The mask is
	comma separated 32 bit groups. Each CPU is one bit. For example for a 256
	CPU system the full mask is:
	ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff

	The rightmost mask is for CPU 0-32.

``max_idle`` (RW)
	Maximum injected idle time to the total CPU time ratio in percent range
	from 1 to 100. Even if the cooling device max_state is always 100 (100%),
	this parameter allows to add a max idle percent limit. The default is 50,
	to match the current implementation of powerclamp driver. Also doesn't
	allow value more than 75, if the cpumask includes every CPU present in
	the system.
+0 −1
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@ Thermal

   exynos_thermal
   exynos_thermal_emulation
   intel_powerclamp
   nouveau_thermal
   x86_pkg_temperature_thermal
   intel_dptf
+1 −0
Original line number Diff line number Diff line
@@ -20707,6 +20707,7 @@ S: Supported
Q:	https://patchwork.kernel.org/project/linux-pm/list/
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git thermal
F:	Documentation/ABI/testing/sysfs-class-thermal
F:	Documentation/admin-guide/thermal/
F:	Documentation/devicetree/bindings/thermal/
F:	Documentation/driver-api/thermal/
F:	drivers/thermal/
Loading