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.