AnsweredAssumed Answered

Wi-Fi SDIO blocks the system's Supend -to-RAM

Question asked by Anjalik Krishna on Oct 28, 2019
Latest reply on Nov 5, 2019 by Anjalik Krishna

Hi,

         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[0] = 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.

Outcomes