We are unable to suspend the system (NXP IMX8MP based custom board) using "systemctl suspend" command. We are using AW-CM276NF wifi/bluetooth module through the SDIO/UART interface. When we run the "systemctl suspend" command we get the following error as log
"477.676334] PM: suspend entry (deep)
[ 477.680187] Filesystems sync: 0.000 seconds
[ 477.686095] Freezing user space processes
[ 477.691633] Freezing user space processes completed (elapsed 0.001 seconds)
[ 477.698639] OOM killer disabled.
[ 477.701884] Freezing remaining freezable tasks
[ 477.707610] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 477.715028] printk: Suspending console(s) (use no_console_suspend to debug)
[ 477.723162] mmc0:0001:1: cannot remain alive while host is suspended
[ 477.723172] wlan_sdio mmc0:0001:1: PM: dpm_run_callback(): pm_generic_suspend+0x0/0x44 returns -38
[ 477.723190] wlan_sdio mmc0:0001:1: PM: failed to suspend async: error -38
[ 477.723202] PM: Some devices failed to suspend, or early wake event detected
[ 477.724203] caam 30900000.crypto: registering rng-caam
[ 477.725823] PM: resume devices took 0.004 seconds
[ 477.764984] OOM killer enabled.
[ 477.768125] Restarting tasks ... done.
[ 477.772726] random: crng reseeded on system resumption
[ 477.777919] PM: suspend exit
[ 477.780952] PM: suspend entry (s2idle)
[ 477.784815] Filesystems sync: 0.000 seconds
[ 477.789476] Freezing user space processes
[ 477.794921] Freezing user space processes completed (elapsed 0.001 seconds)
[ 477.801923] OOM killer disabled.
[ 477.805163] Freezing remaining freezable tasks
[ 477.810877] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 477.818289] printk: Suspending console(s) (use no_console_suspend to debug)
[ 477.826467] mmc0:0001:1: cannot remain alive while host is suspended
[ 477.826479] wlan_sdio mmc0:0001:1: PM: dpm_run_callback(): pm_generic_suspend+0x0/0x44 returns -38
[ 477.826498] wlan_sdio mmc0:0001:1: PM: failed to suspend async: error -38
[ 477.826509] PM: Some devices failed to suspend, or early wake event detected
[ 477.828234] caam 30900000.crypto: registering rng-caam
[ 477.829518] PM: resume devices took 0.004 seconds
[ 477.869024] OOM killer enabled.
[ 477.872165] Restarting tasks ... done.
[ 477.877021] random: crng reseeded on system resumption
[ 477.882211] PM: suspend exit".
So, what can be done to fix this issue?
Hi @arka!
Thank you for contacting NXP Support!
What BSP version that are you using?
I tried in the iMX8MP EVK with the module NXP SDIO 88W8997 (tested with Murata LBEE5XV1YM), the suspend and wake up are woking properly.
I tried with iMX8MN EVK with the module NXP 88W8987 (tested with AzureWave AW-CM358SM), the suspend and wake up are woking properly.
I recommend to check your device tree and your connections to the wifi module, you can take the iMX8MN and iMX8MP EVKs as a reference.
Best Regards!
Chavira
Hi ,
Below i have added the device tree for wifi .
&usdhc1 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
bus-width = <4>;
non-removable;
status = "okay";
};
and we are using sdhci-esdhc-imx.c as the wifi driver .
is there any changes in my device tree ?
Hi @arka!
I recommend to use the next:
&usdhc1 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
keep-power-in-suspend;
non-removable;
wakeup-source;
mmc-pwrseq = <&usdhc1_pwrseq>;
vmmc-supply = <®_usdhc1_vmmc>;
fsl,sdio-async-interrupt-enabled;
status = "okay";
wifi_wake_host {
compatible = "nxp,wifi-wake-host";
interrupt-parent = <&gpio2>;
interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "host-wake";
};
}
You can see the full device tree in the link below:
Best Regards!
Chavira