From: Rafael J. Wysocki <[email protected]>

Make sh_mmcif populate the pm_qos member of struct mmc_host, to
let the core know that it should create the pm_latency_limit_ms
host attribute for it, and set the default value of that attribute
to 100 ms.

Signed-off-by: Rafael J. Wysocki <[email protected]>
---
 drivers/mmc/host/sh_mmcif.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

Index: linux/drivers/mmc/host/sh_mmcif.c
===================================================================
--- linux.orig/drivers/mmc/host/sh_mmcif.c
+++ linux/drivers/mmc/host/sh_mmcif.c
@@ -57,6 +57,7 @@
 #include <linux/pagemap.h>
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
+#include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/module.h>
 
@@ -1327,6 +1328,12 @@ static int __devinit sh_mmcif_probe(stru
        if (ret < 0)
                goto clean_up2;
 
+       mmc->pm_qos = kzalloc(sizeof(*mmc->pm_qos), GFP_KERNEL);
+       if (mmc->pm_qos)
+               mmc->pm_qos->val = 100;
+       else
+               dev_err(&pdev->dev, "Not enough memory for PM QoS.\n");
+
        INIT_DELAYED_WORK(&host->timeout_work, mmcif_timeout_work);
 
        sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, MASK_ALL);
@@ -1356,6 +1363,7 @@ clean_up5:
 clean_up4:
        free_irq(irq[0], host);
 clean_up3:
+       kfree(mmc->pm_qos);
        pm_runtime_suspend(&pdev->dev);
 clean_up2:
        pm_runtime_disable(&pdev->dev);
@@ -1397,6 +1405,8 @@ static int __devexit sh_mmcif_remove(str
 
        platform_set_drvdata(pdev, NULL);
 
+       kfree(host->mmc->pm_qos);
+
        clk_disable(host->hclk);
        mmc_free_host(host->mmc);
        pm_runtime_put_sync(&pdev->dev);

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to