I am facing an issue during system suspend when the Wi-Fi Drivers are loaded. The system is refused to go to a suspend state with below messages.
echo mem > /sys/power/state
[ 19.220137] PM: suspend entry (deep)
[ 19.223727] PM: Syncing filesystems ... done.
[ 19.305201] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 19.313782] OOM killer disabled.
[ 19.317119] Freezing remaining freezable tasks ... (elapsed 0.014 seconds) done.
[ 19.340516] Suspending console(s) (use no_console_suspend to debug)
[ 19.347547] mmc1:0001:1: cannot remain alive while host is suspended
[ 19.347568] dpm_run_callback(): pm_generic_suspend+0x0/0x40 returns -38
[ 19.347574] PM: Device mmc1:0001:1 failed to suspend async: error -38
[ 19.476954] PM: Some devices failed to suspend, or early wake event detected
[ 19.505262] OOM killer enabled.
[ 19.508429] Restarting tasks ... done.
[ 19.514681] PM: suspend exit
-sh: echo: write error: Function not implemented
After reading few articles and other internet source, I enabled the keep-power-in-suspend property to ht sdio node in dts.
But this resulted in a synchronous external abort. I tried to debug the error using System.map and the faulty instruction address points to the port->suspend_saved_reg = readl(port->base + GPIO_ICR1) line of mxc_gpio_noirq_suspend () function and I m stuck here.
I m bit confused how to move forward. Whether the whole debugging of the external abort error is the right way to debug the actual suspend issue ?
Please guide me.