mbox series

[0/3] ACPI: thermal: Properly support the _SCP control method

Message ID 20250410165456.4173-1-W_Armin@gmx.de
Headers show
Series ACPI: thermal: Properly support the _SCP control method | expand

Message

Armin Wolf April 10, 2025, 4:54 p.m. UTC
The ACPI specification defines an interface for the operating system
to change the preferred cooling mode of a given ACPI thermal zone.
This interface takes the form of a special ACPI control method called
_SCP (see section 11.4.13 for details) and is already supported by the
ACPI thermal driver.

However this support as many issues:

 - the kernel advertises support for the "3.0 _SCP Extensions" yet the
   ACPI thermal driver does not support those extensions. This may
   confuse the ACPI firmware.

 - the execution of the _SCP control method happens after the driver
   retrieved the trip point values. This conflicts with the ACPI
   specification:

	"OSPM will automatically evaluate _ACx and _PSV objects after
	 executing _SCP."

 - the cooling mode is hardcoded to active cooling and cannot be
   changed by the user.

Those issues are fixed in this patch series. In the end the user
will be able to tell the ACPI firmware wether he prefers active or
passive cooling. This setting will also be interesting for
applications like TLP (https://linrunner.de/tlp/index.html).

The whole series was tested on various devices supporting the _SCP
control method and on a device without the _SCP control method and
appears to work flawlessly.

Armin Wolf (3):
  ACPI: OSI: Stop advertising support for "3.0 _SCP Extensions"
  ACPI: thermal: Execute _SCP before reading trip points
  ACPI: thermal: Allow userspace applications to change the cooling mode

 .../ABI/testing/sysfs-driver-thermal          |  14 ++
 MAINTAINERS                                   |   1 +
 drivers/acpi/osi.c                            |   1 -
 drivers/acpi/thermal.c                        | 129 ++++++++++++++++--
 4 files changed, 133 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-driver-thermal

--
2.39.5