close
close

New Linux change ensures AMD Ryzen with NVMe works after resuming from sleep

AMD

A Linux power management change introduced on Friday is intended to help AMD Ryzen systems with NVMe solid-state drive storage function properly after resuming from sleep.

Ahead of the Linux 6.10-rc4 kernel release tomorrow, a patch is being rolled out to get more AMD Ryzen laptops/desktops to put their NVMe storage devices into D3 mode when suspending so that they boot up properly when resuming. For the past year or two, AMD has struggled with power management quirks, with some AMD Ryzen laptops losing NVMe when resuming from S2idle suspend, among other S2idle quirks/bugs on Linux.

Modern AMD systems require the NVMe controller to be put into D3 via a modern standby/suspend-to-idle cycle, but some system firmware/BIOS don’t handle this properly. So the Linux ACPI code looked for AMD CPU IDs and enforced this for the Picasso/Renoir/Lucienne/Cezanne platforms. But instead of restricting this behavior to certain CPU IDs, the change before Linux 6.10-rc4 to make it more future-proof and robust enforces memory D3 functionality for AMD Zen CPUs, where low-power idle support is also detected.

AMD Ryzen laptop with NVMe

AMD Linux engineer Mario Limonciello explained in the patch:

“A Rembrandt-based HP thin client is reportedly experiencing issues where the NVME disk is not present after resuming from s2idle.

This is because the NVME disk was not put into D3 during suspend and because StorageD3Enable _DSD was missing in the BIOS.

Since AMD architecture requires NVME to be in D3 for s2idle, adjust the force_storage_d3 criteria to match *all* Zen SoCs when the FADT announces support for low idle power consumption.

This will ensure that future products with this BIOS defect do not need to be added to the override approval list.”

This change was integrated on Friday as part of the ACPI material for Linux 6.10-rc4. It will be found in Sunday’s Linux 6.10-rc4 release, but is also marked for backporting and will therefore appear in the stable Linux kernel line in the next few days.