aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/sh_mmcif.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2012-03-12 20:02:15 -0400
committerRafael J. Wysocki <rjw@sisk.pl>2012-03-13 17:37:29 -0400
commitefe6a8ad7fc55b350ce968cae4c757d35e986285 (patch)
tree6e7f98266e3328dbc164fe3804ced8fa2a1c461e /drivers/mmc/host/sh_mmcif.c
parentc419e611c3c59c0e48405c279e497c4bf1bf2cd2 (diff)
sh_mmcif / PM: Use PM QoS latency constraint
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>
Diffstat (limited to 'drivers/mmc/host/sh_mmcif.c')
-rw-r--r--drivers/mmc/host/sh_mmcif.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c
index f5d8b53be33..a4ad93bf8b4 100644
--- a/drivers/mmc/host/sh_mmcif.c
+++ b/drivers/mmc/host/sh_mmcif.c
@@ -56,6 +56,7 @@
56#include <linux/mmc/sh_mmcif.h> 56#include <linux/mmc/sh_mmcif.h>
57#include <linux/pagemap.h> 57#include <linux/pagemap.h>
58#include <linux/platform_device.h> 58#include <linux/platform_device.h>
59#include <linux/pm_qos.h>
59#include <linux/pm_runtime.h> 60#include <linux/pm_runtime.h>
60#include <linux/spinlock.h> 61#include <linux/spinlock.h>
61#include <linux/module.h> 62#include <linux/module.h>
@@ -1347,6 +1348,8 @@ static int __devinit sh_mmcif_probe(struct platform_device *pdev)
1347 1348
1348 mmc_detect_change(host->mmc, 0); 1349 mmc_detect_change(host->mmc, 0);
1349 1350
1351 dev_pm_qos_expose_latency_limit(&pdev->dev, 100);
1352
1350 dev_info(&pdev->dev, "driver version %s\n", DRIVER_VERSION); 1353 dev_info(&pdev->dev, "driver version %s\n", DRIVER_VERSION);
1351 dev_dbg(&pdev->dev, "chip ver H'%04x\n", 1354 dev_dbg(&pdev->dev, "chip ver H'%04x\n",
1352 sh_mmcif_readl(host->addr, MMCIF_CE_VERSION) & 0x0000ffff); 1355 sh_mmcif_readl(host->addr, MMCIF_CE_VERSION) & 0x0000ffff);
@@ -1374,6 +1377,8 @@ static int __devexit sh_mmcif_remove(struct platform_device *pdev)
1374 host->dying = true; 1377 host->dying = true;
1375 pm_runtime_get_sync(&pdev->dev); 1378 pm_runtime_get_sync(&pdev->dev);
1376 1379
1380 dev_pm_qos_hide_latency_limit(&pdev->dev);
1381
1377 mmc_remove_host(host->mmc); 1382 mmc_remove_host(host->mmc);
1378 sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, MASK_ALL); 1383 sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, MASK_ALL);
1379 1384