Getting suspend to work properly on A06

Update: A06 suspend to ram is working now

It came all of a sudden:

root@devterm /home/yatli # echo deep > /sys/power/mem_sleep
root@devterm /home/yatli # systemctl suspend
root@devterm /home/yatli # [  142.858134] ieee80211 phy1: brcmf_c_set_cur_etheraddr: Setting cur_etheraddr failed, -52
[  143.659868] PM: suspend entry (deep)
[  144.323921] Filesystems sync: 0.663 seconds
[  144.326770] Freezing user space processes ... (elapsed 0.002 seconds) done.
[  144.329443] OOM killer disabled.
[  144.329448] Freezing remaining freezable tasks ... (elapsed 0.008 seconds) done.
[  144.683196] vcc3v0_sd: Entering suspend 3, disabling forcibly, was off
[  144.703933] PM: suspend devices took 0.370 seconds
[  144.714154] Disabling non-boot CPUs ...
[  144.718663] psci: CPU1 killed (polled 0 ms)
[  144.725029] psci: CPU2 killed (polled 0 ms)
[  144.730276] psci: CPU3 killed (polled 0 ms)
[  144.733667] psci: CPU4 killed (polled 0 ms)
[  144.737570] psci: CPU5 killed (polled 0 ms)
[  144.740211] Enabling non-boot CPUs ...
[  144.742010] Detected VIPT I-cache on CPU1
[  144.742501] cacheinfo: Unable to detect cache hierarchy for CPU 1
[  144.743063] GICv3: CPU1: found redistributor 1 region 0:0x00000000fef20000
[  144.743773] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[  144.745599] CPU1 is up
[  144.747228] Detected VIPT I-cache on CPU2
[  144.747716] cacheinfo: Unable to detect cache hierarchy for CPU 2
[  144.748280] GICv3: CPU2: found redistributor 2 region 0:0x00000000fef40000
[  144.748991] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[  144.751225] CPU2 is up
[  144.753040] Detected VIPT I-cache on CPU3
[  144.753527] cacheinfo: Unable to detect cache hierarchy for CPU 3
[  144.754093] GICv3: CPU3: found redistributor 3 region 0:0x00000000fef60000
[  144.754802] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[  144.757380] CPU3 is up
[  144.758884] Detected PIPT I-cache on CPU4
[  144.759276] cacheinfo: Unable to detect cache hierarchy for CPU 4
[  144.759816] GICv3: CPU4: found redistributor 100 region 0:0x00000000fef80000
[  144.760469] CPU4: Booted secondary processor 0x0000000100 [0x410fd082]
[  144.762106] CPU4 is up
[  144.763847] Detected PIPT I-cache on CPU5
[  144.764240] cacheinfo: Unable to detect cache hierarchy for CPU 5
[  144.764781] GICv3: CPU5: found redistributor 101 region 0:0x00000000fefa0000
[  144.765435] CPU5: Booted secondary processor 0x0000000101 [0x410fd082]
[  144.767197] CPU5 is up
[  144.800804] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[  144.924634] mmc_host mmc0: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0)
[  145.083884] dwmmc_rockchip fe310000.mmc: Successfully tuned phase to 163
[  145.100106] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[  145.198980] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[  145.200061] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[  145.201675] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/9 wl0: Feb 11 2020 11:54:51 version 7.45.96.61 (be7af2d@shgit) (r745790) FWID 01-a41d86bd es7.c5.n4.a3
[  145.345189] PM: resume devices took 0.570 seconds
[  145.345658] OOM killer enabled.
[  145.345944] Restarting tasks ... done.
[  145.358887] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[  145.367441] random: crng reseeded on system resumption
[  145.369686] PM: suspend exit
[  145.396920] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[  145.988587] ieee80211 phy2: brcmf_c_set_cur_etheraddr: Setting cur_etheraddr failed, -52
[  152.074573] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[  209.960390] systemd-journald[316]: Time jumped backwards, rotating.

I will document the process later.

3 Likes

Is there a way to make ā€œsuspend to diskā€ (hibernate) work on the Devterm? Since it’s a mobile device that needs to be frequently turned on and off, having only the suspend mode isn’t sufficient. It’s inconvenient to shut down and power up every time.

I wish. I always just shutdown completely. I expect to do the same with the uConsole since I think it has the same issue.

With suspend to disk you will be writing 2-4GB of stuff to the microsd at ~20MB/s…
At that rate you could probably cold boot and set up your workspace again at around the same length of time.

1 Like

I don’t suspend to disk - would rather just shut down… I added a USB mouse dither and haven’t had a problem because it never sleeps!

and meanwhile, after I got suspend working…

1 Like

Seems good.
How you get it working?

Oh, this is just regular suspend to ram, using yatli’s Archlinux+kernel build

1 Like

Thanks for looking into this - ongoing issue with the DevTerm a06 - at first I thought mine had a bad fault or something or the screen had died - appreciate this thread…

Reviving the dead… I turned all those settings to never, and just shut down when not needed. Eventually I’ll look into this if it hasn’t been fixed in the CM4 versions, this a06 is pretty much dead once I receive the adapter. It’s neat, but painful and everyone seems happier with the CM4.