The Linux kernel is adding support for Microsoft's 'Turn On Display' ACPI DSM function to fix laptop suspend/resume issues, particularly addressing a critical fan failure bug on Lenovo Yoga laptops.
The Linux kernel is preparing to support a Microsoft ACPI Device Specific Method (DSM) called "Turn On Display" that will help resolve some problematic laptop behavior during suspend and resume cycles. This new functionality is being queued up in the Linux power management subsystem's "linux-next" Git branch ahead of the upcoming Linux 6.20~7.0 kernel cycle.
The Problem: Laptop Fans Failing After Resume
The issue came to light through a bug report from August 2025 concerning a Lenovo Yoga Slim 7i Aura (15ILL9) laptop. Users reported that after resuming from suspend, the laptop's cooling fans would not reactivate regardless of CPU temperature or system load. This led to CPU temperatures reaching 95 degrees Celsius during normal tasks, creating a significant safety hazard. The issue was 100% reproducible across multiple kernel versions, and only a complete reboot would restore fan functionality. Interestingly, the same hardware worked correctly under Windows.
Microsoft's 'Turn On Display' Function
Microsoft introduced this new ACPI DSM "Turn On Display" notification in Windows 11 22H2. The function, identified as Function 9 in the ACPI specification, is used to signal during resume time from modern standby when the intent is to turn on the system's display. The Linux kernel's s2idle driver will now invoke this method during the resume process.
Technical Implementation
Jakob Riemenschneider explained the technical details in the queued patch:
"According to Microsoft documentation, this function signals to the system firmware that the OS intends to turn on the display when exiting Modern Standby. This allows the firmware to release Power Limits (PLx) earlier."
Crucially, the patch fixes the functional issue observed on the Lenovo Yoga Slim 7i Aura. The embedded controller (EC) on this device turns off components like fans and keyboard backlights during sleep but requires the Function 9 notification to wake them up again.
Execution Order Matters
The patch defines the new function index (ACPI_MS_TURN_ON_DISPLAY) and invokes it in acpi_s2idle_restore_early_lps0(). The execution order has been carefully designed to match the logic of an "intent" signal:
- LPS0 Exit (Function 6)
- Turn On Display Intent (Function 9)
- Modern Standby Exit (Function 8)
- Screen On (Function 4)
By invoking Function 9 before the Modern Standby Exit, the firmware has time to restore power rails and functionality (like fans) before the software fully exits the sleep state.
Broader Implications
While this behavior has been observed on at least one laptop model so far, there's a good chance other models may face similar issues under Linux with current kernels or exhibit other quirky behavior tailored around the Function 9 _DSM for powering them back up. Since this DSM function was added three years ago in Windows 11 22H2, support may become increasingly important and expected with future hardware and firmware.
The addition of this Microsoft-specific ACPI method to the Linux kernel demonstrates the ongoing challenge of maintaining compatibility with hardware that's increasingly designed with Windows-specific features in mind. As laptop firmware becomes more sophisticated in their power management, Linux will need to continue adapting to these proprietary extensions to ensure proper functionality across all hardware platforms.

The patch has been queued for inclusion in the upcoming Linux kernel cycle, meaning users with affected hardware should see improvements in future kernel releases once this code makes its way into stable branches.

Comments
Please log in or register to join the discussion