Páginas

terça-feira, 3 de fevereiro de 2026

Fixing Linux Laptop Overheating: How Microsoft's ACPI "Turn On Display" DSM Now Prevents Critical Thermal Issues

 

Microsoft
A deep technical analysis of how Linux kernel 7.0's new support for Microsoft's ACPI "Turn On Display" DSM fixes critical fan and overheating bugs on modern laptops like Lenovo Yoga. Explore the patch details, power management mechanics, and implications for future hardware compatibility. Essential reading for Linux sysadmins and hardware enthusiasts.

The Hidden Firmware Handshake Crippling Linux Laptops

Imagine your Linux laptop resuming from sleep, but its cooling fans remain dead silent. As you open a web browser, CPU temperatures skyrocket past 95°C, transforming a productivity tool into a safety hazard. 

This was the alarming reality for users of the Lenovo Yoga Slim 7i and potentially other modern laptops—a critical bug traced not to faulty hardware, but to a missing software handshake with the system firmware.

This article provides a comprehensive breakdown of a pivotal development in the Linux power management landscape: the integration of support for Microsoft's ACPI "Turn On Display" Device Specific Method (DSM) in the upcoming Linux 7.0 kernel

This technical deep dive explores how a single missing function call in the suspend/resume cycle caused system fans to fail, the kernel patch that fixed it, and the broader implications for Linux compatibility on next-generation hardware.

Decoding the ACPI DSM: Microsoft's "Turn On Display" Notification

To understand the fix, we must first dissect the problem's origin. ACPI (Advanced Configuration and Power Interface) is the universal standard for OS-level device discovery and power management. 

Within this framework, a Device Specific Method (DSM) is a vendor-defined function that allows an operating system to query or control hardware-specific features. With Windows 11 22H2, Microsoft introduced a new DSM notification dubbed "Turn On Display" (Function 9)

According to Microsoft's official documentation, this method signals the system firmware during resume from Modern Standby (a low-power suspend state akin to S0ix) when the OS intends to activate the display.

Why is this simple "intent" signal so crucial? Modern laptop firmware is increasingly complex, managing a delicate balance of power rails, thermal controls, and peripheral states. 

The "Turn On Display" DSM acts as a critical event trigger, informing the Embedded Controller (EC) to reinitialize specific components—like cooling fans and keyboard backlights—before the operating system fully exits the sleep state. Without this signal, the firmware may leave these components powered down, leading to functional failures.

The Technical Breakdown: Power Sequence Logic

The kernel patch queued for Linux 7.0 reveals the precise execution order required for correct hardware initialization. This sequence ensures firmware has adequate time to restore power:

  1. LPS0 Exit (Function 6): Begins the low-power state exit process.

  2. Turn On Display Intent (Function 9): The new, critical step. Signals display intent, allowing firmware to restore power limits (PLx).

  3. Modern Standby Exit (Function 8): Finalizes the exit from the Modern Standby state.

  4. Screen On (Function 4): Physically powers the display.

By invoking Function 9 before the Modern Standby Exit (Function 8), the Linux kernel now provides firmware the necessary lead time to reactivate essential subsystems.

A Case Study in Thermal Failure: The Lenovo Yoga Slim 7i Bug

The abstract importance of this DSM became concrete through a severe, reproducible bug report filed in August 2025. Users of the Lenovo Yoga Slim 7i Aura (15ILL9) reported that after resuming from suspend, the laptop's cooling fans would fail to reactivate entirely.

The Consequences Were Dire:

  • CPU temperatures would rapidly escalate to 95°C+ during normal tasks.

  • The issue presented a clear safety hazard and risk of long-term hardware damage.

  • It was 100% reproducible across multiple Linux kernel versions.

  • A full system reboot was the only temporary fix.

  • The same hardware operated flawlessly under Windows 11, pointing to a Linux-specific driver gap.

For months, the root cause remained elusive. It was only in late 2025 that kernel developers, including Jakob Riemenschneider, pinpointed the culprit: the Linux s2idle resume path was not invoking the ACPI_MS_TURN_ON_DISPLAY function. 

The laptop's EC, having turned off fans and backlights during sleep, was waiting for this specific notification to wake them back up. Its absence resulted in a silent, overheating laptop.

Kernel-Level Resolution: The Linux 7.0 Patch Explained

The committed fix integrates directly into the Linux kernel's power management subsystem, specifically within the s2idle driver code responsible for the Modern Standby resume path.

Key Technical Elements of the Patch:

  • Definition: A new function index, ACPI_MS_TURN_ON_DISPLAY, is formally defined within the kernel's ACPI headers.

  • Invocation Point: The function is called within acpi_s2idle_restore_early_lps0(), a function executed during the early stages of resuming from the s2idle state.

  • Logical Flow: The patch's core contribution is ensuring the execution order (Function 6 → 9 → 8 → 4) mirrors the "intent-signaling" logic required by modern firmware, as described by Microsoft.

As Riemenschneider explained in the patch submission: "This allows the firmware to release Power Limits (PLx) earlier... The EC on this device turns off these components during sleep but requires the Function 9 notification to wake them up again."

This change is a prime example of Linux hardware compatibility engineering—adapting to proprietary firmware behaviors to ensure seamless and safe operation.

Broader Implications for Linux Hardware Compatibility

While currently documented on a specific Lenovo model, this fix has significant ripple effects across the entire Linux ecosystem.

1. Proliferation of the Standard: Introduced in Windows 11 22H2 (circa 2022), this DSM is a relatively new but growing standard. As Windows 11 market share increases, OEMs will design more firmware assuming its use. Linux must support these methods to ensure out-of-the-box compatibility with future hardware.

2. Preventing Latent Bugs: The Lenovo Yoga bug was severe and obvious. Other devices may exhibit subtler, harder-to-diagnose issues without this patch, such as:
* Intermittent peripheral failures (USB ports, webcams).
* Reduced peak performance due to unreleased power limits.
* Battery life irregularities post-resume.

3. A Shift in Power Management Philosophy: This patch underscores a move towards collaborative power management, where the OS and firmware engage in a detailed dialogue during state transitions. Linux's ACPI subsystem must continue to evolve to participate in this dialogue fully.

For system administrators and Linux power users, this underscores the importance of running newer, well-supported kernels on modern hardware, especially sleek, power-optimized laptops utilizing aggressive low-power states.

Conclusion and Future Outlook

The integration of Microsoft's "Turn On Display" DSM into the Linux kernel is more than a bug fix; it's a necessary adaptation to the evolving x86 hardware landscape. It closes a critical compatibility gap that caused real-world hardware safety issues and sets a precedent for how Linux will handle similar proprietary-but-essential firmware protocols.

Key Takeaways:

  • Critical Fix: Resolves a dangerous overheating bug on the Lenovo Yoga Slim 7i and likely other models.

  • Technical Deep Dive: Implements Microsoft's specified ACPI power sequence for Modern Standby resume.

  • Forward-Looking: Prepares Linux for future hardware that depends on this Windows-originated standard.

  • Community Impact: Highlights the vital work of kernel developers in reverse-engineering and integrating solutions for seamless user experience.

As hardware becomes more integrated and power-aware, the line between operating system and firmware continues to blur. This successful integration of a Microsoft DSM into the Linux kernel is a testament to the open-source community's pragmatism and commitment to user safety and system reliability.

Frequently Asked Questions (FAQ)

Q1: What is an ACPI DSM?

A: A Device Specific Method (DSM) is a vendor-extensible function within the ACPI specification that allows an operating system to control hardware-specific features not covered by standard ACPI code.

Q2: Do I need to update my kernel to fix fan issues?

A: If you are experiencing fan or overheating issues after suspend/resume on a modern laptop (especially 2022+ models), updating to Linux kernel 7.0 or later once released is highly recommended, as it contains this critical fix.

Q3: Is this only relevant for Lenovo laptops?

A: The bug was identified on a Lenovo Yoga Slim 7i. However, as the "Turn On Display" DSM is a Microsoft-defined standard for Windows 11, any OEM using Modern Standby (S0ix) states may implement firmware that expects this signal.

Q4: What's the difference between S3 (Suspend-to-RAM) and Modern Standby (s2idle)?

A: Traditional S3 is a deeper sleep state with most hardware powered off. Modern Standby (s2idle) is a shallower, more connected sleep state (like on smartphones) that allows for faster resumes and background connectivity but requires more sophisticated OS-firmware coordination.

Q5: How can I check if my system uses s2idle?

A: You can often check with the command cat /sys/power/mem_sleep in a terminal. If [s2idle] is bracketed, it's your active suspend method.


Action: 

Stay ahead of hardware compatibility curves! Bookmark this page for updates on Linux kernel power management, and consider subscribing to our newsletter for deep dives into kernel developments that affect your system's performance and stability.

Nenhum comentário:

Postar um comentário