commit: 2ee619f9487c2acc1efdf2c78e68e2bd51b635fa
From: Rafael J. Wysocki <r...@sisk.pl>
Date: Tue, 13 Mar 2012 22:40:00 +0100
Subject: PM / shmobile: Make TMU driver use pm_genpd_dev_always_on()

Make the TMU clocksource driver mark its device as "always on"
using pm_genpd_dev_always_on() to protect it from surprise power
removals and make sh7372_add_standard_devices() add TMU devices on
sh7372 to the A4R power domain so that their "always on" flags
are taken into account as appropriate.

Signed-off-by: Rafael J. Wysocki <r...@sisk.pl>
Tested-by: Simon Horman <ho...@verge.net.au>
Acked-by: Paul Mundt <let...@linux-sh.org>
Cc: stable@vger.kernel.org
---
 arch/arm/mach-shmobile/setup-sh7372.c |    2 ++
 drivers/clocksource/sh_tmu.c          |    4 ++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-shmobile/setup-sh7372.c 
b/arch/arm/mach-shmobile/setup-sh7372.c
index 6fcf304..9f2d7f2 100644
--- a/arch/arm/mach-shmobile/setup-sh7372.c
+++ b/arch/arm/mach-shmobile/setup-sh7372.c
@@ -1041,6 +1041,8 @@ void __init sh7372_add_standard_devices(void)
        sh7372_add_device_to_domain(&sh7372_a4r, &veu2_device);
        sh7372_add_device_to_domain(&sh7372_a4r, &veu3_device);
        sh7372_add_device_to_domain(&sh7372_a4r, &jpu_device);
+       sh7372_add_device_to_domain(&sh7372_a4r, &tmu00_device);
+       sh7372_add_device_to_domain(&sh7372_a4r, &tmu01_device);
 }
 
 void __init sh7372_add_early_devices(void)
diff --git a/drivers/clocksource/sh_tmu.c b/drivers/clocksource/sh_tmu.c
index 079e96a..97f54b6 100644
--- a/drivers/clocksource/sh_tmu.c
+++ b/drivers/clocksource/sh_tmu.c
@@ -32,6 +32,7 @@
 #include <linux/sh_timer.h>
 #include <linux/slab.h>
 #include <linux/module.h>
+#include <linux/pm_domain.h>
 
 struct sh_tmu_priv {
        void __iomem *mapbase;
@@ -410,6 +411,9 @@ static int __devinit sh_tmu_probe(struct platform_device 
*pdev)
        struct sh_tmu_priv *p = platform_get_drvdata(pdev);
        int ret;
 
+       if (!is_early_platform_device(pdev))
+               pm_genpd_dev_always_on(&pdev->dev, true);
+
        if (p) {
                dev_info(&pdev->dev, "kept as earlytimer\n");
                return 0;
-- 
1.7.3.4
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to