AnsweredAssumed Answered

iMX28 SDIO suspend fails on a 802.11n module

Question asked by Artem Kamshilin on Nov 8, 2012
Latest reply on Nov 16, 2012 by Yuji Sasaki
Branched to a new discussion

Hello everyone,


I'm trying to suspend/resume a 802.11n SDIO module I have connected to mmc1 slot of the IMX28EVK board. The module is externally powered and requires no power from SDIO except for communications. I run Freescale Linux distribution with 2.6.35 kernel, all latest patches applied. When I press "Power" button on the host to suspend the system, it suspends OK, but once I press that button again to resume, I get the following in my terminal (starting from the moment I suspended):



pswitch goto suspend

PM: Syncing filesystems ... done.

Freezing user space processes ... (elapsed 0.01 seconds) done.

Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.

Suspending console(s) (use no_console_suspend to debug)


mmc1:0001:1: cannot remain alive while host is suspended

mmc1: card 0001 removed

PM: suspend of devices complete after 793.252 msecs

PM: late suspend of devices complete after 0.687 msecs

wakeup irq = 6

PM: early resume of devices complete after 0.531 msecs

mmc1: new high speed SDIO card at address 0001

mmc mmc1:0001: parent mmc1 should not be sleeping

PM: resume of devices complete after 461.624 msecs

Restarting tasks ... done.

PHY: 0:00 - Link is Up - 100/Full

wlan_sdio_poll_card_status failed, tries = 100, cs = 0xc

WLAN: FW download with helper poll status timeout @ 0

wlan_dnld_fw fail ret=0xffffffff

WLAN: Download FW with nowwait: 0

Firmware Init Failed

woal_add_card failed

wlan_sdio: probe of mmc1:0001:1 failed with error -1


The 802.11n module then never recovers from suspend and does not work until I reinsert it. The 802.11 module is capable of suspend/resume, and vendor says the board should power down the VDD_SDIO rail - on my board, it does not happen with this module, and VDD_SDIO of 3.3V remains applied to the 802.11n SDIO interface. Interestingly, when I suspend my system, I measure the VDD_SDIO on mmc0 which has my SD card I'm booting from - and in suspend that VDD_SDIO goes down to 3.12V, and comes back to 3.3V on resume. Card obviously continues to work.


Any ideas on what can be wrong with the system? Perhaps some configuration issues with the kernel?

Thanks a lot.