diff options
author | Magnus Damm <damm@igel.co.jp> | 2009-06-17 01:04:04 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-06-17 02:39:56 -0400 |
commit | be890a1a95fb439594e796f1968f86ee9f36e718 (patch) | |
tree | 89a1107bfae107e43f544fb2041ca13a92b946b5 /drivers/clocksource/sh_tmu.c | |
parent | 4c7eb4ebc9001ce343969f58fa538e164e82000b (diff) |
sh: turn off irqs when disabling CMT/TMU timers
Modify the CMT and TMU drivers to disable interrupts when
disabling the timer. Only using start/stop bits is not
enough.
This fixes a bootup hang on Migo-R when the CMT is replaced
by TMU for clockevents but the CMT keeps on delivering irqs
even though the timer start bit is off.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/clocksource/sh_tmu.c')
-rw-r--r-- | drivers/clocksource/sh_tmu.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/clocksource/sh_tmu.c b/drivers/clocksource/sh_tmu.c index 08e6ec2cb094..9ffb05f4095d 100644 --- a/drivers/clocksource/sh_tmu.c +++ b/drivers/clocksource/sh_tmu.c | |||
@@ -138,6 +138,9 @@ static void sh_tmu_disable(struct sh_tmu_priv *p) | |||
138 | /* disable channel */ | 138 | /* disable channel */ |
139 | sh_tmu_start_stop_ch(p, 0); | 139 | sh_tmu_start_stop_ch(p, 0); |
140 | 140 | ||
141 | /* disable interrupts in TMU block */ | ||
142 | sh_tmu_write(p, TCR, 0x0000); | ||
143 | |||
141 | /* stop clock */ | 144 | /* stop clock */ |
142 | clk_disable(p->clk); | 145 | clk_disable(p->clk); |
143 | } | 146 | } |