Suspend not supported on Mint 22.1 after upgrade to AMD 7840U

Hi All,

I recently upgrade my Linux Mint Framework 13’s mainboard to the AMD 7840U. See below for specifics on my current setup.

I had a 12th gen intel board, and swapped over my SSD, to the new board with new DDR5 ram. Everything works well except for hibernate and suspend. Neither works since I upgraded. I downgraded to an older Kernel ( 6.6.30-060630-generic) from the latest 6.8 release and that fixed hibernate, but sleep is not available. When I try to suspend using systemctl suspend, I get:

Call to Suspend failed: Sleep verb 'suspend' is not configured or configuration is not supported by kernel

I didn’t change anything substantial in this area since the upgrade so i’m not sure what to do to fix the issue. Does anyone have any ideas?

Thanks

Steve

lsb_release -a
o LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 22.1
Release:	22.1
Codename:	xia


$ lshw
WARNING: you should run this program as super-user.
sk-framework                
    description: Computer
    width: 64 bits
    capabilities: smp vsyscall32
  *-core
       description: Motherboard
       physical id: 0
     *-memory
          description: System memory
          physical id: 0
          size: 64GiB
     *-cpu
          product: AMD Ryzen 7 7840U w/ Radeon  780M Graphics
          vendor: Advanced Micro Devices [AMD]
          physical id: 1
          bus info: cpu@0
          version: 25.116.1
          size: 1397MHz
          capacity: 5132MHz
          width: 64 bits


CONTENTS OF /default/grub:
$ sudo cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

#GRUB_DEFAULT=0
GRUB_DEFAULT="Advanced options for Linux Mint 22.1 Cinnamon>Linux Mint 22.1 Cinnamon, with Linux 6.6.30-060630-generic"
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`( . /etc/os-release; echo ${NAME:-Ubuntu} ) 2>/dev/null || echo Ubuntu`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/nvme0n1p2 resume_offset=46108672 mem_sleep_default=deep"
GRUB_CMDLINE_LINUX=""

# If your computer has multiple operating systems installed, then you
# probably want to run os-prober. However, if your computer is a host
# for guest OSes installed via LVM or raw disk devices, running
# os-prober can cause damage to those guest OSes as it mounts
# filesystems to look for things.
#GRUB_DISABLE_OS_PROBER=false

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
GRUB_RECORDFAIL_TIMEOUT=1

Maybe this discussion from EndeavourOS forums will help?

After many hours of discussion with chat gpt, I still cannot get the laptop to suspend.
The suspend button appears and it goes to the lock screen, but It doesn’t enter ‘deep’ sleep.
I’ve updated to the latest bios (3.09) and have the latest kernel (i also tried a few older kernels to no effect).

the ‘hybrid-sleep’ command works as expected, but not standard sleep

according to chatgpt,
"Your firmware does not expose ACPI S3 sleep (“deep sleep”)

Look for this line in your dmesg output:

ACPI: PM: (supports S0 S4 S5)
"
It appears that ‘deep’ sleep mode is not supported for AMD which I find really hard to believe.

Any help would be appreciated.

thanks

steve

Use Client Challenge to triage it.

Deep sleep is indeed unsupported by AMD, only modern standby (s2idle) is.

OK thanks, if s2idle is more modern than deep sleep, and considering the laptop doesn’t go to any form of standby (unless you consider going to the lock screen as standby), then am I dealing with another issue, and if so do you have any ideas of where I can start looking?

I am on the same platform (7840u) and both suspend and hibernate work fine with Fedora 42 (Silverblue), I’d suggest trying a more recent kernel like 6.14 first.

Good news. I ran the amd-s2idle script. It helpfully told me that the legacy ‘deep’ argument in my GRUB file, specifically: mem_sleep_default=deep is incompatible with AMD, and should be removed. Sleep now works as expected when not trying to force it to use the deep mode.

This was clearly a side-effect of upgrading from an intel mainboard to AMD.

Cheers

Steve

1 Like

I spoke too soon. Sleep appears to be working but i’ve had to hard-reset my laptop 6 times since yesterday, due to what appears to be hibernation issues. It hibernates fine, but when waking from hibernation, freezes. That is – black screen, black keyboard, power button on with solid light.

Journalctl tells be the below…

Any insights before I go buy a mac?

).
Jun 05 10:24:44 sk-framework kernel: amdgpu 0000:c1:00.0: amdgpu: MES ring buffer is full.
Jun 05 10:24:44 sk-framework k3s[4546]: E0605 10:24:44.779169    4546 pod_workers.go:1298] "Error syncing pod, skipping" err="failed to ensure that the pod: b54b6682-74c7-4221-915c-250e2b3a5d67 cgroups exist and are correctly applied: failed to create container for [kubepods besteffort podb54b6682-74c7-4221-915c-250e2b3a5d67] : unable to start unit \"kubepods-besteffort-podb54b6682_74c7_4221_915c_250e2b3a5d67.slice\" (properties [{Name:Description Value:\"libcontainer container kubepods-besteffort-podb54b6682_74c7_4221_915c_250e2b3a5d67.slice\"} {Name:Wants Value:[\"kubepods-besteffort.slice\"]} {Name:MemoryAccounting Value:true} {Name:CPUAccounting Value:true} {Name:IOAccounting Value:true} {Name:TasksAccounting Value:true} {Name:DefaultDependencies Value:false}]): Transaction for kubepods-besteffort-podb54b6682_74c7_4221_915c_250e2b3a5d67.slice/start is destructive (shutdown.target has 'start' job queued, but 'stop' is included in transaction)." pod="kube-system/traefik-d7c9c5778-44vcj" podUID="b54b6682-74c7-4221-915c-250e2b3a5d67"
Jun 05 10:24:44 sk-framework k3s[4546]: time="2025-06-05T10:24:44+01:00" level=info msg="Slow SQL (started: 2025-06-05 10:24:42.641525549 +0100 BST m=+3853.202525995) (total time: 2.138041496s):  SELECT * FROM ( SELECT ( SELECT MAX(rkv.id) AS id FROM kine AS rkv), ( SELECT MAX(crkv.prev_revision) AS prev_revision FROM kine AS crkv WHERE crkv.name = 'compact_rev_key'), kv.id AS theid, kv.name AS thename, kv.created, kv.deleted, kv.create_revision, kv.prev_revision, kv.lease, kv.value, kv.old_value FROM kine AS kv JOIN ( SELECT MAX(mkv.id) AS id FROM kine AS mkv WHERE mkv.name LIKE ? AND mkv.name > ? GROUP BY mkv.name) AS maxkv ON maxkv.id = kv.id WHERE kv.deleted = 0 OR ? ) AS lkv ORDER BY lkv.thename ASC LIMIT 1"
Jun 05 10:24:44 sk-framework k3s[4546]: time="2025-06-05T10:24:44+01:00" level=info msg="Slow SQL (started: 2025-06-05 10:24:43.594265805 +0100 BST m=+3854.155266242) (total time: 1.186155549s):  SELECT ( SELECT MAX(rkv.id) AS id FROM kine AS rkv), ( SELECT MAX(crkv.prev_revision) AS prev_revision FROM kine AS crkv WHERE crkv.name = 'compact_rev_key'), kv.id AS theid, kv.name AS thename, kv.created, kv.deleted, kv.create_revision, kv.prev_revision, kv.lease, kv.value, kv.old_value FROM kine AS kv WHERE kv.name LIKE ? AND kv.id > ? ORDER BY kv.id ASC LIMIT 500"
Jun 05 10:24:44 sk-framework k3s[4546]: time="2025-06-05T10:24:44+01:00" level=info msg="Slow SQL (started: 2025-06-05 10:24:43.175555054 +0100 BST m=+3853.736555460) (total time: 1.605061779s):  SELECT ( SELECT MAX(rkv.id) AS id FROM kine AS rkv), COUNT(c.theid) FROM ( SELECT * FROM ( SELECT ( SELECT MAX(rkv.id) AS id FROM kine AS rkv), ( SELECT MAX(crkv.prev_revision) AS prev_revision FROM kine AS crkv WHERE crkv.name = 'compact_rev_key'), kv.id AS theid, kv.name AS thename, kv.created, kv.deleted, kv.create_revision, kv.prev_revision, kv.lease, kv.value, kv.old_value FROM kine AS kv JOIN ( SELECT MAX(mkv.id) AS id FROM kine AS mkv WHERE mkv.name LIKE ? AND mkv.name > ? GROUP BY mkv.name) AS maxkv ON maxkv.id = kv.id WHERE kv.deleted = 0 OR ? ) AS lkv ORDER BY lkv.thename ASC ) c"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.793419    4546 replica_set.go:676] "Finished syncing" kind="ReplicaSet" key="kube-system/local-path-provisioner-595dcfc56f" duration="5.654255ms"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.794414    4546 replica_set.go:676] "Finished syncing" kind="ReplicaSet" key="kube-system/local-path-provisioner-595dcfc56f" duration="66.566µs"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.806261    4546 replica_set.go:676] "Finished syncing" kind="ReplicaSet" key="kube-system/coredns-7b98449c4" duration="6.925973ms"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.807082    4546 replica_set.go:676] "Finished syncing" kind="ReplicaSet" key="kube-system/coredns-7b98449c4" duration="87.936µs"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.818922    4546 replica_set.go:676] "Finished syncing" kind="ReplicaSet" key="kube-system/traefik-d7c9c5778" duration="6.301234ms"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.819855    4546 replica_set.go:676] "Finished syncing" kind="ReplicaSet" key="kube-system/traefik-d7c9c5778" duration="80.311µs"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.829403    4546 event.go:389] "Event occurred" object="kube-system/traefik" fieldPath="" kind="Service" apiVersion="v1" type="Normal" reason="UpdatedLoadBalancer" message="Updated LoadBalancer with new IPs: [10.225.250.161] -> [10.225.250.161]"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.836457    4546 event.go:389] "Event occurred" object="kube-system/traefik" fieldPath="" kind="Service" apiVersion="v1" type="Warning" reason="UnAvailableLoadBalancer" message="There are no available nodes for LoadBalancer"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.840690    4546 replica_set.go:676] "Finished syncing" kind="ReplicaSet" key="kube-system/coredns-7b98449c4" duration="70.453µs"
Jun 05 10:24:44 sk-framework k3s[4546]: I0605 10:24:44.851401    4546 replica_set.go:676] "Finished syncing" kind="ReplicaSet" key="kube-system/traefik-d7c9c5778" duration="49.985µs"
Jun 05 10:24:46 sk-framework kernel: amdgpu 0000:c1:00.0: amdgpu: SMU: I'm not done with your previous command: SMN_C2PMSG_66:0x0000000F SMN_C2PMSG_82:0x00000007
Jun 05 10:24:47 sk-framework kernel: amdgpu 0000:c1:00.0: amdgpu: Failed to disable gfxoff!
Jun 05 10:24:47 sk-framework kernel: amdgpu 0000:c1:00.0: amdgpu: MES ring buffer is full.

Upgrade to a newer kernel.

FTR 6.15 I’ve personally verified hibernate on Phoenix.