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

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

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

2,046 Views
anjalikkrishna
Contributor III

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.

0 Kudos
4 Replies

1,815 Views
rahmanuh
Contributor III

Hi,

Did you solve this? If so, could you share the solution?

Best regards,
Rahmanu

0 Kudos

1,877 Views
igorpadykov
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,878 Views
anjalikkrishna
Contributor III

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.

   

   

0 Kudos

1,878 Views
anjalikkrishna
Contributor III

After commenting gpio0 node in dtsi file, the system is suspending now

0 Kudos