mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-07-12 18:19:42 -07:00
205c5bccb3
Suspend on the R36S family hangs because the shipped sleep.conf orders SuspendState as "mem standby freeze" and px30 mainline has no working S3, so the kernel commits to a state it cannot leave. Ship SuspendState=freeze on RK3326; the power button is the rk817 PMIC pwrkey, which every board DTS already marks wakeup-source, and logind already routes HandlePowerKey=suspend through systemd-sleep into this hook. Borrow the state discipline from the dArkOS sleep hooks: blank the backlight before the kernel path runs, snapshot the full mixer state with alsactl (the rk817 can lose its routing across s2idle and the existing restore only re-set the master volume), and save/restore the cpu/gpu/dmc governors. dwc2 reload on resume was already covered by modules.bad. Untested on hardware: needs a device check that s2idle enters (screen and audio off), the pwrkey wakes it, and audio routing plus USB gadget survive the round trip. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>