aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/clock.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2008-11-04 16:24:00 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-02-08 06:38:41 -0500
commitc1168dc31d8e0688168030ac66341897ed7ca32a (patch)
tree44d1e331bb70d0f305308aec0f60df9066e7946f /arch/arm/mach-omap2/clock.c
parentbc51da4ee46d481dc3fbc57ec407594b80e92705 (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.c14
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. */