Trivial patch removing clock framework and adding
pm_runtime API.

Signed-off-by: Felipe Balbi <[email protected]>
---
 arch/arm/plat-omap/counter-32k.c |   48 ++++++++++---------------------------
 1 files changed, 13 insertions(+), 35 deletions(-)

diff --git a/arch/arm/plat-omap/counter-32k.c b/arch/arm/plat-omap/counter-32k.c
index f3fcb38..7bfd67a 100644
--- a/arch/arm/plat-omap/counter-32k.c
+++ b/arch/arm/plat-omap/counter-32k.c
@@ -27,7 +27,7 @@
 #include <linux/time.h>
 #include <linux/clocksource.h>
 #include <linux/platform_device.h>
-#include <linux/clk.h>
+#include <linux/pm_runtime.h>
 #include <linux/err.h>
 
 struct omap_counter_32k_device {
@@ -37,7 +37,6 @@ struct omap_counter_32k_device {
        cycles_t                last_cycles;
 
        struct device           *dev;
-       struct clk              *ick;
        void __iomem            *base;
 
        /*
@@ -117,7 +116,6 @@ static int __init omap_counter_32k_probe(struct 
platform_device *pdev)
 {
        struct omap_counter_32k_device          *omap;
        struct resource                 *res;
-       struct clk                      *ick;
 
        int                             ret;
 
@@ -130,11 +128,18 @@ static int __init omap_counter_32k_probe(struct 
platform_device *pdev)
                goto err0;
        }
 
+       pm_runtime_enable(&pdev->dev);
+       ret = pm_runtime_get_sync(&pdev->dev);
+       if (ret) {
+               dev_dbg(&pdev->dev, "unable to enable runtime pm\n");
+               goto err1;
+       }
+
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!res) {
                dev_dbg(&pdev->dev, "couldn't get resource\n");
                ret = -ENODEV;
-               goto err1;
+               goto err2;
        }
 
        base = ioremap(res->start, resource_size(res));
@@ -144,22 +149,8 @@ static int __init omap_counter_32k_probe(struct 
platform_device *pdev)
                goto err2;
        }
 
-       ick = clk_get(&pdev->dev, "ick");
-       if (IS_ERR(ick)) {
-               dev_dbg(&pdev->dev, "couldn't get clock\n");
-               ret = PTR_ERR(ick);
-               goto err3;
-       }
-
-       ret = clk_enable(ick);
-       if (ret) {
-               dev_dbg(&pdev->dev, "couldn't enable clock\n");
-               goto err4;
-       }
-
        omap->base      = base;
        omap->dev       = &pdev->dev;
-       omap->ick       = ick;
 
        omap->cs.name   = "counter-32k";
        omap->cs.rating = 250;
@@ -174,7 +165,7 @@ static int __init omap_counter_32k_probe(struct 
platform_device *pdev)
        ret = clocksource_register(&omap->cs);
        if (ret) {
                dev_dbg(&pdev->dev, "failed to register clocksource\n");
-               goto err5;
+               goto err3;
        }
 
        /* initialize our offset */
@@ -190,16 +181,12 @@ static int __init omap_counter_32k_probe(struct 
platform_device *pdev)
 
        return 0;
 
-err5:
-       clk_disable(ick);
-
-err4:
-       clk_put(ick);
-
 err3:
        iounmap(base);
 
 err2:
+       pm_runtime_put_sync(&pdev->dev);
+
 err1:
        kfree(omap);
 
@@ -211,9 +198,8 @@ static int __exit omap_counter_32k_remove(struct 
platform_device *pdev)
 {
        struct omap_counter_32k_device  *omap = platform_get_drvdata(pdev);
 
+       pm_runtime_put_sync(&pdev->dev);
        clocksource_unregister(&omap->cs);
-       clk_disable(omap->ick);
-       clk_put(omap->ick);
        iounmap(omap->base);
        kfree(omap);
        platform_set_drvdata(pdev, NULL);
@@ -221,16 +207,8 @@ static int __exit omap_counter_32k_remove(struct 
platform_device *pdev)
        return 0;
 }
 
-static void omap_counter_32k_shutdown(struct platform_device *pdev)
-{
-       struct omap_counter_32k_device  *omap = platform_get_drvdata(pdev);
-
-       clk_disable(omap->ick);
-}
-
 static struct platform_driver omap_counter_32k_driver = {
        .remove         = __exit_p(omap_counter_32k_remove),
-       .shutdown       = omap_counter_32k_shutdown,
        .driver         = {
                .name   = "omap-counter-32k",
        },
-- 
1.7.3.1.120.g38a18

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

Reply via email to