Switch the Pocket EVO to real suspend to RAM - #215
Conversation
The EVO has been on fake suspend because deep suspend did not hold: it woke itself within seconds, and with a Steam session running it failed to resume at all. Both causes are fixed in armada-packages — the SM8550 wake source and UFS resume patches from ROCKNIX PR #2954, plus removal of the fan tacho interrupt on TLMM GPIO 64, which fired ~80 times a second and repeatedly pulled the SoC back out of suspend. Measured on a Pocket EVO with those in place, on battery with a Steam session running: 1202s of uninterrupted deep suspend woken only by the RTC alarm, and standby drain of 27.8mA against 161.8mA for fake suspend. That is 5.8x lower, turning roughly 2 days of standby into 12. Also pin SuspendState to mem. systemd defaults to "mem standby freeze", so a failed deep suspend falls through to s2idle, which has been observed to wedge SM8550 hard enough to need a power-button reset. A failed deep should no-op instead. ROCKNIX pins the same thing for this SoC. This depends on the armada-packages kernel change. Landing it against a kernel without those patches puts EVO devices back in the configuration that hangs on resume, which needs a hold-power recovery — so it should not merge before the kernel is in. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Marking this draft — found a blocker, and it's one my testing should have caught much earlier. The power button does not wake the device from deep suspend. Pressing power suspends fine, then pressing it again does nothing; the device is genuinely asleep and unwakeable, which presents as a hang and needs a hold-power reset. Every "successful" result I reported was woken by an RTC alarm ( Evidence, from a suspend with a 120s RTC backstop and a power press partway through:
The kernel work in armada-packages#23 is unaffected — deep suspend itself holds fine and the drain numbers stand. It is only this PR, flipping the EVO over to Next step is finding why the pwrkey doesn't arm a PDC wake on SM8550. Leaving this in draft until then. |
|
replaced by #228 |
Important
Do not merge before armada-packages#23. On a kernel without those patches,
memis the configuration that hangs the EVO on resume with a Steam session running — recoverable only by holding the power button.What changed
ayaneo-pocket-evo.conf:ARMADA_SUSPEND_MODE=memsleep.conf.ddrop-in pinningSuspendState=mem— systemd's defaultmem standby freezefalls through to s2idle on a failed deep suspend, which wedges SM8550 hard enough to need a power-button reset (we hit this during bring-up). ROCKNIX pins the same for this SoC.memResults
Pocket EVO, on battery, Steam running: 27.8 mA vs 161.8 mA standby — ~2 days to ~12. 1202s of uninterrupted deep suspend woken only by the RTC alarm,
success=3 fail=0, session intact on resume.Gaps
Headline numbers are from a 7.0.11 build; packages has since moved to 7.1.5, confirmed working but only over a ~4 minute run. No multi-hour soak, single drain sample per mode, one device. The 5.8× gap is well beyond sampling error, but holding this until there's a longer soak on 7.1.5 is a reasonable call.
🤖 Generated with Claude Code