Skip to content

Commit

Permalink
clocksource: sh_tmu: Runtime PM support
Browse files Browse the repository at this point in the history
Add Runtime PM support to the TMU driver.

The hardware device is enabled as long as the clocksource
or the clockevent portion of the driver is used.

Signed-off-by: Magnus Damm <[email protected]>
Acked-by: John Stultz <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
  • Loading branch information
Magnus Damm authored and pmundt committed May 23, 2011
1 parent 0aeac45 commit 1b842e9
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions drivers/clocksource/sh_tmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/clk.h>
#include <linux/pm_runtime.h>
#include <linux/irq.h>
#include <linux/err.h>
#include <linux/clocksource.h>
Expand Down Expand Up @@ -109,10 +110,12 @@ static int sh_tmu_enable(struct sh_tmu_priv *p)
{
int ret;

/* enable clock */
/* wake up device and enable clock */
pm_runtime_get_sync(&p->pdev->dev);
ret = clk_enable(p->clk);
if (ret) {
dev_err(&p->pdev->dev, "cannot enable clock\n");
pm_runtime_put_sync(&p->pdev->dev);
return ret;
}

Expand Down Expand Up @@ -141,8 +144,9 @@ static void sh_tmu_disable(struct sh_tmu_priv *p)
/* disable interrupts in TMU block */
sh_tmu_write(p, TCR, 0x0000);

/* stop clock */
/* stop clock and mark device as idle */
clk_disable(p->clk);
pm_runtime_put_sync(&p->pdev->dev);
}

static void sh_tmu_set_next(struct sh_tmu_priv *p, unsigned long delta,
Expand Down Expand Up @@ -411,6 +415,7 @@ static int __devinit sh_tmu_probe(struct platform_device *pdev)

if (p) {
dev_info(&pdev->dev, "kept as earlytimer\n");
pm_runtime_enable(&pdev->dev);
return 0;
}

Expand All @@ -425,6 +430,9 @@ static int __devinit sh_tmu_probe(struct platform_device *pdev)
kfree(p);
platform_set_drvdata(pdev, NULL);
}

if (!is_early_platform_device(pdev))
pm_runtime_enable(&pdev->dev);
return ret;
}

Expand Down

0 comments on commit 1b842e9

Please sign in to comment.