linux-surface / surface-pro-x

Tracking and meta repository for Surface Pro X support.
76 stars 6 forks source link

Support for SAM-Based Thermal Sensors #25

Closed qzed closed 2 years ago

qzed commented 2 years ago

Thermal sensors are provided by both the SoC and via SAM. This issue is for sensors provided via SAM.

In essence, we will need to write a new SAM subsystem driver for that. The interface should be similar to the one used in ACPI on older generations with the SAN bridge device.

qzed commented 2 years ago

The relevant driver for this on WIndows seems to be the SurfaceSmfClient driver. As far as I can tell it uses the same old ACPI/SAN interface. Unfortunately it doesn't look like there are any descriptive strings around as to which sensor has which purpose/place on the device.

qzed commented 2 years ago

Relevant issue in SAM repo: https://github.com/linux-surface/surface-aggregator-module/issues/59.

qzed commented 2 years ago

Thermal sensors have been implemented in https://github.com/linux-surface/kernel/commit/1cdd37f43fe526c259d06702528808e7d6efd66a and https://github.com/linux-surface/kernel/commit/1cdd37f43fe526c259d06702528808e7d6efd66a with bindings in https://github.com/linux-surface/kernel/commit/95eb0b8a56bd6e12646439c27fc1bd96ddff5b95. It doesn't look like there's any sysfs API for setting thermal trip points from user-space, so that SAM interface is currently not used. Maybe we'd have to define some fixed ones in the DT and integrate them, but there aren't any defined in ACPI. So temperatures only for now.