Mario, someone used Claude to dig into the issue and here's what it has
to say:


---------------------------------------------------------------

**Why it works on Windows:** AMD's Windows drivers explicitly re-initialize the 
SMU CPPC handshake
in their resume path. The Linux `amd_pmc` and `amd-pstate` drivers do not.

---

## How an upstream provider can fix this

### Kernel fix (correct layer — `amd-pstate` / `amd_pmc`)

`drivers/cpufreq/amd-pstate.c` — The driver needs a `.resume()` callback (or a
`syscore_ops.resume` hook) that re-writes the CPPC `desired_perf` register for 
every online CPU.
In active mode this means re-issuing the CPPC performance request that was in 
effect before
suspend, forcing the SMU to re-accept OS-side CPPC control.

`drivers/platform/x86/amd/pmc/pmc.c` — The `amd_pmc` driver orchestrates the 
s2idle handshake.
On the exit path (`amd_pmc_resume_handler`) it could call a notifier that lets 
`amd-pstate`
re-initialize CPPC, ensuring the SMU is back under kernel control before user 
processes resume.

---------------------------------------------------------------

Is this doable/plausible?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2088733

Title:
  low CPU frequency after wake up AMD Ryzen

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/2088733/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to