suspend mode does not work on imx8mp

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

suspend mode does not work on imx8mp

Jump to solution
2,242 Views
MicMoba
Contributor V

Hi,

I have a problem to enter the suspend mode on my im8mp with Kernel 5.15.52

On my evalboard with a Kernel 5.10.72 everything works fine:

root@phyboard-pollux-imx8mp-2:~# uname -a
Linux phyboard-pollux-imx8mp-2 5.10.72-bsp-yocto-nxp-i.mx8mp-pd22.1.0 #1 SMP PREEMPT Mon Jul 18 13:32:41 UTC 2022 aarch64 GNU/Linux
root@phyboard-pollux-imx8mp-2:~# echo mem > /sys/power/state
[   96.834546] PM: suspend entry (deep)
[   96.849167] Filesystems sync: 0.011 seconds
[   96.924803] Freezing user space processes ... (elapsed 0.001 seconds) done.
[   96.933169] OOM killer disabled.
[   96.936405] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[   97.242436] PM: suspend devices took 0.296 seconds
[   97.249991] Disabling non-boot CPUs ...
[   97.254351] CPU1: shutdown
[   97.257081] psci: CPU1 killed (polled 0 ms)
[   97.262697] CPU2: shutdown
[   97.265439] psci: CPU2 killed (polled 0 ms)
[   97.271018] CPU3: shutdown
[   97.273734] psci: CPU3 killed (polled 0 ms)


On the same evalboard with Kernel 5.15.52 it stucks after "PM: suspend devices..."

root@ /home/user$ uname -a
Linux hmi 5.15.52 #1 SMP PREEMPT Mon Jan 9 14:24:04 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
root@ /home/user$ echo mem > /sys/power/state
[  455.034722] PM: suspend entry (deep)
[  455.042950] Filesystems sync: 0.004 seconds
[  455.115887] Freezing user space processes ... (elapsed 0.001 seconds) done.
[  455.124559] OOM killer disabled.
[  455.127795] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[  455.138435] imx-dwmac 30bf0000.ethernet eth1: Link is Down
[  455.144013] imx-dwmac 30bf0000.ethernet eth1: FPE workqueue stop
[  455.215416] fec 30be0000.ethernet eth0: Link is Down
[  455.266494] PM: suspend devices took 0.132 seconds

 It looks like that the cpu does not reach the suspend mode.

After ~50s additional informations were print to the console:

[  550.390404] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[  550.396515] rcu:     0-...0: (5 ticks this GP) idle=c5b/1/0x4000000000000000 softirq=6921/6922 fqs=2625 
[  550.405740]  (detected by 2, t=5252 jiffies, g=8085, q=2)
[  550.411139] Task dump for CPU 0:
[  550.414367] task:bash            state:R  running task     stack:    0 pid:  970 ppid:   969 flags:0x0000020e
[  550.424286] Call trace:
[  550.426729]  __switch_to+0x108/0x160
[  550.430316]  schedule+0x74/0x110

 And some time later the system resets.

Any ideas how I can debug that. Or what tools I can use to find the reason? I don't know how to isolate the issue.

 

Thanks

0 Kudos
Reply
1 Solution
2,223 Views
MicMoba
Contributor V
Okay that's the solution of my problem:
Because I do not need HDMI I disable all nodes in my device tree. Now the suspend mode works for me.

View solution in original post

0 Kudos
Reply
2 Replies
2,224 Views
MicMoba
Contributor V

I found a way to get more debug informations.

echo 1 > /sys/power/pm_debug_messages 
echo 1 > /sys/power/pm_print_times 
echo mem > /sys/power/state

I figgure out that my device always stops at

imx-blk-ctrl 32fc0000.hdmi-blk-ctrl: PM: calling genpd_suspend_noirq+0x0/0x30 @ 909, parent: 30c00000.bus

So I suppose it has something to do with the hdmi part. I will do further investigations.

0 Kudos
Reply
2,224 Views
MicMoba
Contributor V
Okay that's the solution of my problem:
Because I do not need HDMI I disable all nodes in my device tree. Now the suspend mode works for me.
0 Kudos
Reply