diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-11-04 11:35:03 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-02-08 06:38:39 -0500 |
commit | 897dcded6fb6565f4d1c22a55d21f135403db132 (patch) | |
tree | da9c4028ed49a1482445131760b4fc45c6524abe /arch/arm/plat-omap/clock.c | |
parent | 548d849574847b788fe846fe21a41386063be161 (diff) |
[ARM] omap: provide a NULL clock operations structure
... and use it for clocks which are ALWAYS_ENABLED. These clocks
use a non-NULL enable_reg pointer for other purposes (such as
selecting clock rates.)
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/plat-omap/clock.c')
-rw-r--r-- | arch/arm/plat-omap/clock.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index be6aab9c6834..529c4a9f012e 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -358,6 +358,23 @@ void clk_enable_init_clocks(void) | |||
358 | } | 358 | } |
359 | EXPORT_SYMBOL(clk_enable_init_clocks); | 359 | EXPORT_SYMBOL(clk_enable_init_clocks); |
360 | 360 | ||
361 | /* | ||
362 | * Low level helpers | ||
363 | */ | ||
364 | static int clkll_enable_null(struct clk *clk) | ||
365 | { | ||
366 | return 0; | ||
367 | } | ||
368 | |||
369 | static void clkll_disable_null(struct clk *clk) | ||
370 | { | ||
371 | } | ||
372 | |||
373 | const struct clkops clkops_null = { | ||
374 | .enable = clkll_enable_null, | ||
375 | .disable = clkll_disable_null, | ||
376 | }; | ||
377 | |||
361 | #ifdef CONFIG_CPU_FREQ | 378 | #ifdef CONFIG_CPU_FREQ |
362 | void clk_init_cpufreq_table(struct cpufreq_frequency_table **table) | 379 | void clk_init_cpufreq_table(struct cpufreq_frequency_table **table) |
363 | { | 380 | { |
@@ -383,8 +400,10 @@ static int __init clk_disable_unused(void) | |||
383 | unsigned long flags; | 400 | unsigned long flags; |
384 | 401 | ||
385 | list_for_each_entry(ck, &clocks, node) { | 402 | list_for_each_entry(ck, &clocks, node) { |
386 | if (ck->usecount > 0 || (ck->flags & ALWAYS_ENABLED) || | 403 | if (ck->ops == &clkops_null) |
387 | ck->enable_reg == 0) | 404 | continue; |
405 | |||
406 | if (ck->usecount > 0 || ck->enable_reg == 0) | ||
388 | continue; | 407 | continue; |
389 | 408 | ||
390 | spin_lock_irqsave(&clockfw_lock, flags); | 409 | spin_lock_irqsave(&clockfw_lock, flags); |