mmc: rtsx_usb_sdmmc: Enable runtime PM autosuspend
authorUlf Hansson <ulf.hansson@linaro.org>
Thu, 13 Oct 2016 11:37:39 +0000 (13:37 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 29 Nov 2016 08:00:28 +0000 (09:00 +0100)
Enable runtime PM autosuspend for the rtsx_usb_sdmmc driver to avoid the
device being runtime suspended and runtime resumed between each request.
Let's use a default timeout of 50ms, to be consistent with other mmc hosts.

Cc: Ritesh Raj Sarraf <rrs@researchut.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/rtsx_usb_sdmmc.c

index 6e9c0f8fddb1064c64c195812fdf8ad220728360..dc1abd14acbc76301746cec3182f453cd8980278 100644 (file)
@@ -1374,6 +1374,8 @@ static int rtsx_usb_sdmmc_drv_probe(struct platform_device *pdev)
 
        mutex_init(&host->host_mutex);
        rtsx_usb_init_host(host);
+       pm_runtime_use_autosuspend(&pdev->dev);
+       pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
        pm_runtime_enable(&pdev->dev);
 
 #ifdef RTSX_USB_USE_LEDS_CLASS
@@ -1428,6 +1430,7 @@ static int rtsx_usb_sdmmc_drv_remove(struct platform_device *pdev)
 
        mmc_free_host(mmc);
        pm_runtime_disable(&pdev->dev);
+       pm_runtime_dont_use_autosuspend(&pdev->dev);
        platform_set_drvdata(pdev, NULL);
 
        dev_dbg(&(pdev->dev),