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.
Hi Anjalik
i.MX8 linux power management is described in sect.2.5.1 Low Level Power Management (PM)
attached Linux Manual, which may be helpful for debugging.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
Thank You for the reply.
The system is suspending now after commenting the gpio0 node in the dtsi...Any idea what is the link between GPIO0 bank and SDIO suspend functionality?
Also when resuming back , I am getting time out in sdhci_reset() with the below prints
[ 579.856720] mmc1: Reset 0x4 never completed.
[ 579.860990] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 579.867429] mmc1: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
[ 579.873875] mmc1: sdhci: Blk size: 0x00000040 | Blk cnt: 0x00000001
[ 579.880322] mmc1: sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 579.886767] mmc1: sdhci: Present: 0x01fd8008 | Host ctl: 0x00000001
[ 579.893214] mmc1: sdhci: Power: 0x00000000 | Blk gap: 0x00000080
[ 579.899660] mmc1: sdhci: Wake-up: 0x00000008 | Clock: 0x000020af
[ 579.906106] mmc1: sdhci: Timeout: 0x0000008f | Int stat: 0x00000000
[ 579.912552] mmc1: sdhci: Int enab: 0x007f1003 | Sig enab: 0x007f1003
[ 579.918998] mmc1: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000502
[ 579.925445] mmc1: sdhci: Caps: 0x07eb0000 | Caps_1: 0x8000b407
[ 579.931891] mmc1: sdhci: Cmd: 0x0000371a | Max curr: 0x00ffffff
[ 579.938337] mmc1: sdhci: Resp[0]: 0x00002000 | Resp[1]: 0x00000000
[ 579.944783] mmc1: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 579.951228] mmc1: sdhci: Host ctl2: 0x00000000
[ 579.955677] mmc1: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
[ 579.962121] mmc1: sdhci: ============================================
[ 590.153104] mmc1: Timeout waiting for hardware cmd interrupt.
[ 590.158868] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 590.165316] mmc1: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
[ 590.171761] mmc1: sdhci: Blk size: 0x00000040 | Blk cnt: 0x00000001
[ 590.178206] mmc1: sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 590.184653] mmc1: sdhci: Present: 0x01fd8009 | Host ctl: 0x00000001
[ 590.191098] mmc1: sdhci: Power: 0x00000000 | Blk gap: 0x00000080
[ 590.197544] mmc1: sdhci: Wake-up: 0x00000008 | Clock: 0x000020af
[ 590.203991] mmc1: sdhci: Timeout: 0x0000008f | Int stat: 0x00000000
[ 590.210437] mmc1: sdhci: Int enab: 0x007f1003 | Sig enab: 0x007f1003
[ 590.216883] mmc1: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000502
[ 590.223330] mmc1: sdhci: Caps: 0x07eb0000 | Caps_1: 0x8000b407
[ 590.229775] mmc1: sdhci: Cmd: 0x0000371a | Max curr: 0x00ffffff
[ 590.236221] mmc1: sdhci: Resp[0]: 0x00002000 | Resp[1]: 0x00000000
[ 590.242667] mmc1: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 590.249112] mmc1: sdhci: Host ctl2: 0x00000000
[ 590.253562] mmc1: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
[ 590.260006] mmc1: sdhci: ============================================
[ 590.767140] mmc1: Reset 0x2 never completed.
This prints occur continuously for a pretty long time and then
mmc1: error -110 during resume (card was removed?)
print appears and the Wi-Fi driver shows IOCTL failed prints.
I tried to increase the timeout check window for sdhci reset and clock but the issue persists.
Any help would be appreciated.
After commenting gpio0 node in dtsi file, the system is suspending now