On Wed, Jul 3, 2013 at 4:39 PM, Bing Zhao <bzhao@xxxxxxxxxxx> wrote: > Followings are the actions taken for driver unload. > > a) If device is connected, sync deauth command is sent. > b) Auto deep sleep is cancelled by sending sync command > c) Sync shutdown command is queued and HW_STATUS is changed to reset. > d) Now no other command gets queued based on HW_STATUS. > e) Wait for shutdown command response and handle it. > f) Set surprise_removed flag which blocks SDIO interrupts > > As per our design, we don't send any command to firmware after SHUTDOWN command. Also, firmware doesn't send any interrupt after SHUTDOWN command response. I cannot see how the driver behaviour matches the above description for when the card is removed as the system is suspended. For example I cannot see where the SHUTDOWN command gets sent in such cases. Also, at which point do we wait upon all async commands to complete before shutting down? I walked through all the driver code in the codepaths hit when the card is removed as the system is going into suspend, and I found no such point. (This is why interrupts then arrive later, because those commands are completing.) Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html