Files
nixos-hardware/gigabyte/b550
Marien Zwart b416c1d56f Simplify implementation of B550 suspend fix
Instead of using systemd oneshot services that have to be careful to not
toggle wakeups back on, use a udev rule to disable wakeups by device ID.

On a B550 Vision D, these do almost the same thing:

````
$ lspci -n | grep 1022:1483
00:01.1 0604: 1022:1483
00:01.2 0604: 1022:1483
00:03.1 0604: 1022:1483

$ cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
...
GPP0      S4    *disabled  pci:0000:00:01.1
GPP8      S4    *disabled  pci:0000:00:03.1
````

Two of the three devices with the PCI vendor/device ID specified by the
udev rule correspond to devices previously disabled via ACPI (if I
understand correctly disabling these via either /proc/acpi/wakeup or
udev device attribute has the same effect).

The third device is (like the other two) using the "pcieport" driver.
Using a device connected via that port as a wakeup device still works.
2025-03-12 15:18:05 +00:00
..

B550 suspend bug

Gigabyte B550-family motherboards have a hard to diagnose (At least, from the system log events) suspend bug.

As of the F18 bios for the b550m-d3sh (My machine), released in 2024-02-27, this is still unfixed by the manufacurer and has been for over 4 years.

Symptoms:

  • Suspend PC
  • It goes into suspend, then seems to boot and hang. Sometimes it suspends successfully, but waking it from suspend puts it in the "zombie" state.
  • By playing chicken with volatile storage and flicking the power switch on the back of power supply, you can sometimes get it to wake from suspend as the card un-powers before volatile storage does.

Fix: disable GPP0 and GPP8 (And, for some cards, potentially PTXH, I can't test) in /proc/acpi/wakeup - To do this permanently, a systemd service is provided

This affects at least:

Anecdotes of other boards:

Shoutouts:

Breadcrumbs:

https://www.reddit.com/r/gigabyte/comments/p5ewjn/b550i_pro_ax_f13_bios_sleep_issue_on_linux/

https://www.reddit.com/r/archlinux/comments/11urtla/systemctl_suspend_hibernate_and_hybridsleep_all/

https://forum.manjaro.org/t/system-do-not-wake-up-after-suspend/76681/2