Skip to content

linux-cachyos-lts: fix amdgpu s2idle deadlock on HP EliteBook 845 G7#798

Open
IQUXAe wants to merge 1 commit intoCachyOS:masterfrom
IQUXAe:fix/amdgpu-s2idle-elitebook-845-g7
Open

linux-cachyos-lts: fix amdgpu s2idle deadlock on HP EliteBook 845 G7#798
IQUXAe wants to merge 1 commit intoCachyOS:masterfrom
IQUXAe:fix/amdgpu-s2idle-elitebook-845-g7

Conversation

@IQUXAe
Copy link
Copy Markdown

@IQUXAe IQUXAe commented Apr 7, 2026

Problem
HP EliteBook 845 G7 (AMD Ryzen 3 PRO 4450U, Renoir APU) suffers from a hardware-level deadlock during s2idle suspend/resume. The system enters sleep normally (power LED blinks), but becomes completely unresponsive — pressing the power button or keyboard has no effect. The only recovery is a hard power-off.

The issue is confirmed to be amdgpu-related: with nomodeset, s2idle works correctly.

Root Cause
The amdgpu driver's S0ix suspend path leaves the GPU in a partially-managed power state (GFX/PSP/MES stay active, but SMU has received power transition commands). When amd_pmc subsequently sends OS_HINT to enter S0i3, the SMU's hardware Finite State Machine encounters a conflicting GPU power state and enters an unrecoverable deadlock. The CPU completes MWAIT entry but the SoC cannot process wake interrupts.

Solution
Two DMI-based quirks for the HP EliteBook 845 G7:

Disable PSP Trusted Applications (psp_v12_0.c): Sets size_bytes = 0 for HDCP, DTM, RAP, and SECUREDISPLAY contexts, preventing their loading. This ensures psp_suspend() doesn't hang when terminating TAs during the full shutdown.

Force S3-style full GPU suspend (amdgpu_acpi.c): Makes amdgpu_acpi_is_s3_active() return true and amdgpu_acpi_is_s0ix_active() return false for this laptop. This forces the driver to perform a complete shutdown of all GPU IP blocks (GFX, PSP, SMC, DCE, SDMA, VCN, etc.) before the platform enters s2idle/S0i3. The amd_pmc driver still handles the platform-level S0i3 transition.

Testing
Hardware: HP EliteBook 845 G7 Notebook PC (AMD Ryzen 3 PRO 4450U)
Kernel: CachyOS LTS 6.18.x
Result: System now reliably enters and exits s2idle. Multiple suspend/resume cycles tested successfully.

Add two DMI-based quirks for the HP EliteBook 845 G7 (Renoir APU)
to fix a hardware deadlock during s2idle suspend/resume:

1. Disable problematic PSP Trusted Applications (HDCP, DTM, RAP,
   SECUREDISPLAY) that can hang during psp_suspend() on this platform.

2. Force S3-style full GPU suspend instead of S0ix during s2idle.
   The S0ix path leaves the GPU in a partially-managed state that
   causes the SoC's hardware state machine to deadlock, preventing
   wake-up. The S3-style path properly shuts down all IP blocks,
   giving SMU a clean state for S0i3 entry.

The amd_pmc driver still handles the platform-level S0i3 transition.

Tested on HP EliteBook 845 G7 Notebook PC with AMD Ryzen 3 PRO 4450U.
System now reliably suspends and resumes from s2idle.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant