I am using MCIMX6SLL-EVK board as the Linux Host system in my testing. It is running the Linux kernel 4.9.11.
I am interfacing an external WiFi module via SDIO interface using the SD card slot SD3.
The WiFi module driver sets the MMC capability bit MMC_CAPS_NONREMOVABLE in the SDIO probe function to enable the WoWLAN Suspend/ Resume functionality. Also in SDIO probe fuction, the deivice wakeup is configured using the API device_init_wakeup(dev, true).
Also in SDIO suspend function, MMC_PM_KEEP_POWER & MMC_PM_WAKE_SDIO_IRQ capabilities are set. UART wake-up and the WoWLAN wake-up is configured before going to the suspend.
System suspend is tested using the commands,
echo enabled > /sys/class/tty/ttymxc0/power/wakeup
echo mem > /sys/power/state
The observation is that WiFi module SDIO interface power is sustained across Suspend/Resume tests. But the SDIO interrupts are not received in the host system. Host system doesn't wake-up from suspend based on SDIO interrupt, it wakes-up only based on UART interrupt.