• Ohad Ben-Cohen's avatar
    mmc: sdio: support suspend/resume while runtime suspended · ed2a9785
    Ohad Ben-Cohen authored
    Bring SDIO devices back to full power before their suspend
    handler is invoked.
    
    Doing so ensures that SDIO suspend/resume semantics are
    maintained (drivers still get to decide whether their
    card should be removed or kept during system suspend,
    and at what power state), and that SDIO suspend/resume
    execution paths are unchanged.
    
    This is achieved by resuming a runtime-suspended SDIO device
    in its ->prepare() PM callback (similary to the PCI subsystem).
    
    Since the PM core always increments the run-time usage
    counter before calling the ->prepare() callback and decrements
    it after calling the ->complete() callback, it is guaranteed
    that when the system will come out of suspend, our device's
    power state will reflect its runtime PM usage counter.
    Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
    Tested-by: default avatarLuciano Coelho <luciano.coelho@nokia.com>
    Signed-off-by: default avatarChris Ball <cjb@laptop.org>
    ed2a9785
sdio_bus.c 7.81 KB