sh_mmcif / PM: Use PM QoS latency constraint
authorRafael J. Wysocki <rjw@sisk.pl>
Tue, 13 Mar 2012 00:02:15 +0000 (01:02 +0100)
committerRafael J. Wysocki <rjw@sisk.pl>
Tue, 13 Mar 2012 21:37:29 +0000 (22:37 +0100)
Make sh_mmcif call dev_pm_qos_expose_latency_limit() to expose
the PM QoS latency limit to user space and specify the initial
value of it as 100 microseconds.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
drivers/mmc/host/sh_mmcif.c

index f5d8b53be333aa9c997b0e82c1e8e69a8204eb0d..a4ad93bf8b41b895d0517755ea5833163dc8a522 100644 (file)
@@ -56,6 +56,7 @@
 #include <linux/mmc/sh_mmcif.h>
 #include <linux/pagemap.h>
 #include <linux/platform_device.h>
+#include <linux/pm_qos.h>
 #include <linux/pm_runtime.h>
 #include <linux/spinlock.h>
 #include <linux/module.h>
@@ -1347,6 +1348,8 @@ static int __devinit sh_mmcif_probe(struct platform_device *pdev)
 
        mmc_detect_change(host->mmc, 0);
 
+       dev_pm_qos_expose_latency_limit(&pdev->dev, 100);
+
        dev_info(&pdev->dev, "driver version %s\n", DRIVER_VERSION);
        dev_dbg(&pdev->dev, "chip ver H'%04x\n",
                sh_mmcif_readl(host->addr, MMCIF_CE_VERSION) & 0x0000ffff);
@@ -1374,6 +1377,8 @@ static int __devexit sh_mmcif_remove(struct platform_device *pdev)
        host->dying = true;
        pm_runtime_get_sync(&pdev->dev);
 
+       dev_pm_qos_hide_latency_limit(&pdev->dev);
+
        mmc_remove_host(host->mmc);
        sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, MASK_ALL);