• Ulf Hansson's avatar
    mmc: dw_mmc: Prevent runtime PM suspend when SDIO IRQs are enabled · ca8971ca
    Ulf Hansson authored
    To be able to handle SDIO IRQs the dw_mmc device needs to be powered and
    providing clock to the SDIO card. Therefore, we must not allow the device
    to be runtime PM suspended while SDIO IRQs are enabled.
    
    To fix this, let's increase the runtime PM usage count while the mmc core
    enables SDIO IRQs. Later when the mmc core tells dw_mmc to disable SDIO
    IRQs, we drop the usage count to again allow runtime PM suspend.
    
    This now becomes the default behaviour for dw_mmc. In cases where SDIO IRQs
    can be re-routed as GPIO wake-ups during runtime PM suspend, one could
    potentially allow runtime PM suspend. However, that will have to be
    addressed as a separate change on top of this one.
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Tested-by: default avatarDouglas Anderson <dianders@chromium.org>
    Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
    ca8971ca
dw_mmc.c 85.8 KB