• Roger Tseng's avatar
    mfd: rtsx_usb: Fix runtime PM deadlock · b166010f
    Roger Tseng authored
    sd_set_power_mode() in derived module drivers/mmc/host/rtsx_usb_sdmmc.c
    acquires dev_mutex and then calls pm_runtime_get_sync() to make sure the
    device is awake while initializing a newly inserted card. Once it is
    called during suspending state and explicitly before rtsx_usb_suspend()
    acquires the same dev_mutex, both routine deadlock and further hang the
    driver because pm_runtime_get_sync() waits the pending PM operations.
    Fix this by using an empty suspend method. mmc_core always turns the
    LED off after a request is done and thus it is ok to remove the only
    rtsx_usb_turn_off_led() here.
    Cc: <stable@vger.kernel.org> # v3.16+
    Fixes: 730876be ("mfd: Add realtek USB card reader driver")
    Signed-off-by: default avatarRoger Tseng <rogerable@realtek.com>
    [Lee: Removed newly unused variable]
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
rtsx_usb.c 18.2 KB