[PATCH v3 0/3] ACPI fan _DSM support

Armin Wolf posted 3 patches 1 month, 3 weeks ago
drivers/acpi/fan.h       |   7 ++
drivers/acpi/fan_core.c  | 222 ++++++++++++++++++++++++++++++++++++++-
drivers/acpi/fan_hwmon.c |  15 ++-
3 files changed, 239 insertions(+), 5 deletions(-)
[PATCH v3 0/3] ACPI fan _DSM support
Posted by Armin Wolf 1 month, 3 weeks ago
Microsoft has designed a _DSM interface for the ACPI fan device [1]
that allows the OS to set fan speed trip points. The ACPI firmware
will notify the ACPI fan device when said trip points are triggered.

Unfortunately some device manufacturers (like HP) blindly assume that
the OS will use this _DSM interface and thus only update the fan speed
value returned by the _FST control method when sending a notification
to the ACPI fan device. This results in stale fan speed values being
reported by the ACPI fan driver [2].

The first two patches add support for the ACPI fan notifications as
specified in ACPI 11.2.3. The last patch finally adds support for the
Microsoft _DSM interface.

All patches where tested with a custom SSDT [3] and the acpi_call [4]
kernel module and appear to work just fine.

[1] https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/design-guide
[2] https://github.com/lm-sensors/lm-sensors/issues/506
[3] https://github.com/Wer-Wolf/acpi-fan-ssdt/blob/master/ssdt-dsm.asl
[4] https://github.com/nix-community/acpi_call

Changes since v2:
- drop already merged patches
- add links to the MSFT documentation in patch 3

Changes since v1:
- use acpi_evaluate_dsm_typed() during _DSM initialization
- send ACPI netlink event when after handling a ACPI notification

Armin Wolf (3):
  ACPI: fan: Add basic notification support
  ACPI: fan: Add hwmon notification support
  ACPI: fan: Add support for Microsoft fan extensions

 drivers/acpi/fan.h       |   7 ++
 drivers/acpi/fan_core.c  | 222 ++++++++++++++++++++++++++++++++++++++-
 drivers/acpi/fan_hwmon.c |  15 ++-
 3 files changed, 239 insertions(+), 5 deletions(-)

-- 
2.39.5
Re: [PATCH v3 0/3] ACPI fan _DSM support
Posted by Rafael J. Wysocki 1 month, 2 weeks ago
On Fri, Oct 24, 2025 at 8:38 PM Armin Wolf <W_Armin@gmx.de> wrote:
>
> Microsoft has designed a _DSM interface for the ACPI fan device [1]
> that allows the OS to set fan speed trip points. The ACPI firmware
> will notify the ACPI fan device when said trip points are triggered.
>
> Unfortunately some device manufacturers (like HP) blindly assume that
> the OS will use this _DSM interface and thus only update the fan speed
> value returned by the _FST control method when sending a notification
> to the ACPI fan device. This results in stale fan speed values being
> reported by the ACPI fan driver [2].
>
> The first two patches add support for the ACPI fan notifications as
> specified in ACPI 11.2.3. The last patch finally adds support for the
> Microsoft _DSM interface.
>
> All patches where tested with a custom SSDT [3] and the acpi_call [4]
> kernel module and appear to work just fine.
>
> [1] https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/design-guide
> [2] https://github.com/lm-sensors/lm-sensors/issues/506
> [3] https://github.com/Wer-Wolf/acpi-fan-ssdt/blob/master/ssdt-dsm.asl
> [4] https://github.com/nix-community/acpi_call
>
> Changes since v2:
> - drop already merged patches
> - add links to the MSFT documentation in patch 3
>
> Changes since v1:
> - use acpi_evaluate_dsm_typed() during _DSM initialization
> - send ACPI netlink event when after handling a ACPI notification
>
> Armin Wolf (3):
>   ACPI: fan: Add basic notification support
>   ACPI: fan: Add hwmon notification support
>   ACPI: fan: Add support for Microsoft fan extensions

All applied as 6.19 material, thanks!
Re: [PATCH v3 0/3] ACPI fan _DSM support
Posted by Armin Wolf 1 month, 2 weeks ago
Am 27.10.25 um 20:58 schrieb Rafael J. Wysocki:

> On Fri, Oct 24, 2025 at 8:38 PM Armin Wolf <W_Armin@gmx.de> wrote:
>> Microsoft has designed a _DSM interface for the ACPI fan device [1]
>> that allows the OS to set fan speed trip points. The ACPI firmware
>> will notify the ACPI fan device when said trip points are triggered.
>>
>> Unfortunately some device manufacturers (like HP) blindly assume that
>> the OS will use this _DSM interface and thus only update the fan speed
>> value returned by the _FST control method when sending a notification
>> to the ACPI fan device. This results in stale fan speed values being
>> reported by the ACPI fan driver [2].
>>
>> The first two patches add support for the ACPI fan notifications as
>> specified in ACPI 11.2.3. The last patch finally adds support for the
>> Microsoft _DSM interface.
>>
>> All patches where tested with a custom SSDT [3] and the acpi_call [4]
>> kernel module and appear to work just fine.
>>
>> [1] https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/design-guide
>> [2] https://github.com/lm-sensors/lm-sensors/issues/506
>> [3] https://github.com/Wer-Wolf/acpi-fan-ssdt/blob/master/ssdt-dsm.asl
>> [4] https://github.com/nix-community/acpi_call
>>
>> Changes since v2:
>> - drop already merged patches
>> - add links to the MSFT documentation in patch 3
>>
>> Changes since v1:
>> - use acpi_evaluate_dsm_typed() during _DSM initialization
>> - send ACPI netlink event when after handling a ACPI notification
>>
>> Armin Wolf (3):
>>    ACPI: fan: Add basic notification support
>>    ACPI: fan: Add hwmon notification support
>>    ACPI: fan: Add support for Microsoft fan extensions
> All applied as 6.19 material, thanks!

Thank you :)