summaryrefslogtreecommitdiff
path: root/arch/arm/mach-davinci/clock.c
diff options
context:
space:
mode:
authorChaithrika U S <chaithrika@ti.com>2009-12-15 12:32:58 (GMT)
committerKevin Hilman <khilman@deeprootsystems.com>2010-02-04 21:29:53 (GMT)
commit679f9218cac9e7d63ae3868c0c71b45b1ba5f766 (patch)
treeba2d016f61656f2c0421eb3e8b1e83e955b50dea /arch/arm/mach-davinci/clock.c
parentad021ae8862209864dc8ebd3b7d3a55ce84b9ea2 (diff)
downloadlinux-679f9218cac9e7d63ae3868c0c71b45b1ba5f766.tar.xz
davinci: clock: Check CLK_PSC flag before disabling PSC
Some modules do not have PSC to control their clocks. The 'lpsc' field in the clk structure is 0 for such clocks. In the clock disable function check for CLK PSC flag before disabling the PSC. If this is not taken care of then it may so happen that module controlled by LPSC 0 is erroneously disabled. Signed-off-by: Chaithrika U S <chaithrika@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/clock.c')
-rw-r--r--arch/arm/mach-davinci/clock.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c
index a19bab1..1238393 100644
--- a/arch/arm/mach-davinci/clock.c
+++ b/arch/arm/mach-davinci/clock.c
@@ -49,7 +49,8 @@ static void __clk_disable(struct clk *clk)
{
if (WARN_ON(clk->usecount == 0))
return;
- if (--clk->usecount == 0 && !(clk->flags & CLK_PLL))
+ if (--clk->usecount == 0 && !(clk->flags & CLK_PLL) &&
+ (clk->flags & CLK_PSC))
davinci_psc_config(psc_domain(clk), clk->gpsc, clk->lpsc, 0);
if (clk->parent)
__clk_disable(clk->parent);