FW 13 AMD 7840U Fails to Suspend

Which Linux distro are you using?
Arch

Which release version?
2025/03/11

Which kernel are you using?
6.13.6-arch1-1

Which BIOS version are you using?
3.05

Which Framework Laptop 13 model are you using? (AMD Ryzen™ 7040 Series, Intel® Core™ Ultra Series 1, 13th Gen Intel® Core™ , 12th Gen Intel® Core™, 11th Gen Intel® Core™)
AMD Ryzen™ 7040 Series

Previous to this kernel update, the machine failed to wake from suspend, when plugged in, almost every time. Most often it resumed from suspend when unplugged from power. With the current kernel update, the machine will not enter suspend, or seems to hang immediately.

Here is the output from amd_s2idle.py:

$ sudo python amd_s2idle.py 
Location of log file (default s2idle_report-2025-03-11.txt)? 
Debugging script for s2idle on AMD systems
💻 Framework Laptop 13 (AMD Ryzen 7040Series) (Laptop)
🐧 Arch Linux
🐧 Kernel 6.13.6-arch1-1
🔋 Battery BAT1 (NVT Framewo) is operating at 95.58% of design
Checking prerequisites for s2idle
✅ Logs are provided via systemd
✅ AMD Ryzen 7 7840U w/ Radeon  780M Graphics (family 19 model 74)
✅ ASPM policy set to 'default'
✅ SMT enabled
✅ LPS0 _DSM enabled
✅ ACPI FADT supports Low-power S0 idle
✅ PMC driver `amd_pmc` loaded (Program 0 Firmware 76.82.0)
✅ USB3 driver `xhci_hcd` bound to 0000:c1:00.3
✅ USB3 driver `xhci_hcd` bound to 0000:c1:00.4
✅ USB3 driver `xhci_hcd` bound to 0000:c3:00.3
✅ USB3 driver `xhci_hcd` bound to 0000:c3:00.4
✅ USB4 driver `thunderbolt` bound to 0000:c3:00.5
✅ USB4 driver `thunderbolt` bound to 0000:c3:00.6
✅ WLAN driver `iwlwifi` bound to 0000:01:00.0
✅ GPU driver `amdgpu` bound to 0000:c1:00.0
✅ System is configured for s2idle
✅ GPIO driver `pinctrl_amd` available
✅ PC6 and CC6 states are enabled
✅ RTC driver `rtc_cmos` configured to use CMOS alarm
How long should suspend cycles last in seconds (default 10)? 
How long to wait in between suspend cycles in seconds (default 4)? 
How many suspend cycles to run (default 1)? 
Started at 2025-03-11 15:53:37.402759 (cycle finish expected @ 2025-03-11 15:53:51.402783)
❌ Failed to suspend

I tried updating to the beta 3.07 BIOS, as there was mention of fixes around sleep, however, that seems to change nothing.

I strace’d amd_s2idle.py to see why it was failing to suspend, and found this:

openat(AT_FDCWD, "/sys/power/state", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 26
fstat(26, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
ioctl(26, TCGETS, 0x7ffd6b2ed830)       = -1 ENOTTY (Inappropriate ioctl for device)
lseek(26, 0, SEEK_CUR)                  = 0
lseek(26, 0, SEEK_CUR)                  = 0
write(26, "mem", 3)                     = -1 EBUSY (Device or resource busy)
write(26, "mem", 3)                     = -1 EBUSY (Device or resource busy)
close(26)                               = 0
getpid()                                = 6311
write(3, "2025-03-11 22:43:09,682 ERROR:\t\342"..., 53) = 53
write(1, "\342\235\214 \33[91mFailed to suspend\33[0m\n", 31❌ Failed to suspend
) = 31

It looks like the system controller is failing to enter sleep.

  • Alex