blob: 378e4eca6f4b04d558f1175053cebe1875942e70 [file] [log] [blame]
From rjw@sisk.pl Mon Mar 26 15:03:04 2012
From: "Rafael J. Wysocki" <rjw@sisk.pl>
Date: Mon, 26 Mar 2012 23:26:53 +0200
Subject: PM / shmobile: Make CMT driver use pm_genpd_dev_always_on()
To: Greg KH <gregkh@linuxfoundation.org>
Cc: horms@verge.net.au, lethal@linux-sh.org, stable@vger.kernel.org, stable-commits@vger.kernel.org
Message-ID: <201203262326.53650.rjw@sisk.pl>
From: Rafael J. Wysocki <rjw@sisk.pl>
Commit 615a445f7f8a077c145e737864ae59a4d8717882 upstream.
Make the CMT clocksource driver mark its device as "always on"
using pm_genpd_dev_always_on() to protect it from surprise power
removals.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: Simon Horman <horms@verge.net.au>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/clocksource/sh_cmt.c | 4 ++++
1 file changed, 4 insertions(+)
--- a/drivers/clocksource/sh_cmt.c
+++ b/drivers/clocksource/sh_cmt.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_cmt_priv {
void __iomem *mapbase;
@@ -689,6 +690,9 @@ static int __devinit sh_cmt_probe(struct
struct sh_cmt_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;