diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-11-04 16:24:00 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-02-08 06:38:41 -0500 |
commit | c1168dc31d8e0688168030ac66341897ed7ca32a (patch) | |
tree | 44d1e331bb70d0f305308aec0f60df9066e7946f /arch/arm/mach-omap2/clock.c | |
parent | bc51da4ee46d481dc3fbc57ec407594b80e92705 (diff) |
[ARM] omap: don't use clkops_omap2_dflt_wait for non-ICLK/FCLK clocks
The original code in omap2_clk_wait_ready() used to check the low 8
bits to determine whether they were within the FCLKEN or ICLKEN
registers. Specifically, the test is satisfied when these offsets
are used:
CM_FCLKEN, CM_FCLKEN1, CM_CLKEN, OMAP24XX_CM_FCLKEN2, CM_ICLKEN,
CM_ICLKEN1, CM_ICLKEN2, CM_ICLKEN3, OMAP24XX_CM_ICLKEN4
OMAP3430_CM_CLKEN_PLL, OMAP3430ES2_CM_CLKEN2
If one of these offsets isn't used, omap2_clk_wait_ready() merely
returns without doing anything. So we should use the non-wait clkops
version instead and eliminate that conditional.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-omap2/clock.c')
-rw-r--r-- | arch/arm/mach-omap2/clock.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c index 986c9f582752..76afb7b4482c 100644 --- a/arch/arm/mach-omap2/clock.c +++ b/arch/arm/mach-omap2/clock.c | |||
@@ -228,14 +228,12 @@ static void omap2_clk_wait_ready(struct clk *clk) | |||
228 | * it and pull it into struct clk itself somehow. | 228 | * it and pull it into struct clk itself somehow. |
229 | */ | 229 | */ |
230 | reg = clk->enable_reg; | 230 | reg = clk->enable_reg; |
231 | if ((((u32)reg & 0xff) >= CM_FCLKEN1) && | 231 | |
232 | (((u32)reg & 0xff) <= OMAP24XX_CM_FCLKEN2)) | 232 | /* |
233 | other_reg = (void __iomem *)(((u32)reg & ~0xf0) | 0x10); /* CM_ICLKEN* */ | 233 | * Convert CM_ICLKEN* <-> CM_FCLKEN*. This conversion assumes |
234 | else if ((((u32)reg & 0xff) >= CM_ICLKEN1) && | 234 | * it's just a matter of XORing the bits. |
235 | (((u32)reg & 0xff) <= OMAP24XX_CM_ICLKEN4)) | 235 | */ |
236 | other_reg = (void __iomem *)(((u32)reg & ~0xf0) | 0x00); /* CM_FCLKEN* */ | 236 | other_reg = (void __iomem *)((u32)reg ^ (CM_FCLKEN ^ CM_ICLKEN)); |
237 | else | ||
238 | return; | ||
239 | 237 | ||
240 | /* Check if both functional and interface clocks | 238 | /* Check if both functional and interface clocks |
241 | * are running. */ | 239 | * are running. */ |