Switch the Pocket EVO to real suspend to RAM - #228
Conversation
34b6bf1 to
4bed4bd
Compare
|
Dropped the Wi-Fi/Bluetooth power-down sleep hook that was in the first revision of this branch. The idea was sound — NetworkManager only drops the link, so the WCN7850 stays powered with Leaving it out until someone can measure a difference over a window long enough to trust. |
4bed4bd to
4e50180
Compare
Depends on the SM8550 deep-suspend patches in armada-packages. Without them the SoC leaves deep suspend after about seven seconds (TSENS uplow wake IRQs), so this must not land first. Two pieces: ARMADA_SUSPEND_MODE=mem routes the power button to a real suspend instead of fake-suspend. SuspendState is pinned to mem. systemd defaults to "mem standby freeze", so a failed deep suspend falls through to s2idle, which hard-crashes SM8550 -- a watchdog reset with "PM: suspend entry (s2idle)" as the last line written. A failed deep should no-op instead. Measured on a Pocket EVO with a Steam session running, on battery, across four windows from one hour to five: 1.00h 88,473 uAh = 88.4 mA (capacity 42% -> 41%) 5.22h 481,125 uAh = 92.2 mA (capacity 71% -> 66%) 1.11h 288,169 uAh = 258.7 mA (capacity 62% -> 58%) 6.58h combined = 167.4 mA (capacity 71% -> 58%) So roughly 90-170 mA, call it 2 to 4 days of standby against about 1.2 for fake suspend. Deep suspend held every cycle, resumed cleanly, and was woken only by the RTC alarm, with no suspend failures. The spread between windows is wider than I would like -- both instruments agree within a few percent on each window individually -- so the range is quoted rather than a single figure. That needs the PCIe D3cold series (armada-packages#28/armada-os#29). With only the TSENS and UFS work it is 237 mA: this board carries a discrete Renesas uPD720201 PCIe USB3 controller for the built-in gamepad whose rails are held by the PCI device node, so nothing short of PHY power-down drops it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
4e50180 to
6277262
Compare
|
@virtudude this is ok to close right? I think anything relevant has since been pulled into sleep testing builds |
Switch the Pocket EVO to real suspend to RAM
Depends on the SM8550 deep-suspend patches in armada-packages. Without them
the SoC leaves deep suspend after about seven seconds (TSENS uplow wake IRQs),
so this must not land first.
Two pieces:
ARMADA_SUSPEND_MODE=mem routes the power button to a real suspend instead of
fake-suspend.
SuspendState is pinned to mem. systemd defaults to "mem standby freeze", so a
failed deep suspend falls through to s2idle, which hard-crashes SM8550 -- a
watchdog reset with "PM: suspend entry (s2idle)" as the last line written. A
failed deep should no-op instead.
Measured on a Pocket EVO with a Steam session running, on battery, across four
windows from one hour to five:
1.00h 88,473 uAh = 88.4 mA (capacity 42% -> 41%)
5.22h 481,125 uAh = 92.2 mA (capacity 71% -> 66%)
1.11h 288,169 uAh = 258.7 mA (capacity 62% -> 58%)
6.58h combined = 167.4 mA (capacity 71% -> 58%)
So roughly 90-170 mA, call it 2 to 4 days of standby against about 1.2 for fake
suspend. Deep suspend held every cycle, resumed cleanly, and was woken only by
the RTC alarm, with no suspend failures. The spread between windows is wider
than I would like -- both instruments agree within a few percent on each window
individually -- so the range is quoted rather than a single figure.
That needs the PCIe D3cold series (armada-packages#28/#29). With only the TSENS
and UFS work it is 237 mA: this board carries a discrete Renesas uPD720201 PCIe
USB3 controller for the built-in gamepad whose rails are held by the PCI device
node, so nothing short of PHY power-down drops it.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Depends on armada-packages#28 (validated stack: TSENS + UFS + PCIe D3cold) and armada-packages#29 (its source). Do not merge before them.