diff options
author | Paul Walmsley <paul@pwsan.com> | 2010-05-18 20:40:24 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-05-20 14:31:06 -0400 |
commit | d74b4949714741f4c58cd1801a6a92737b89a61c (patch) | |
tree | a0e838fff3cab45bfba0c319fcdf7f1ea594686f /arch/arm/mach-omap2/clock_common_data.c | |
parent | 275f675c24a16ea45cc78bc03ff73fd06be8bffb (diff) |
OMAP2+ clock: remove DEFAULT_RATE clksel_rate flag
The DEFAULT_RATE clksel_rate flag is essentially useless. It was set
on some of the lowest divisors, which, when switching to a much
higher-rate parent, could have potentially resulted in rates that
exceeded the hardware specifications for downstream clocks in the
window between the clk_set_parent(), and a subsequent clk_set_rate().
It seems much safer to just remove the flag and always use the highest
available divisor (resulting in the lowest possible rate) after the
switch, and this patch does so.
Ideally, it would be best to first attempt to switch to a divisor that
matches the clock's rate with the previous parent, if at all possible.
But that is a project for some other day or some other person. The
parent changing code is rarely used.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm/mach-omap2/clock_common_data.c')
-rw-r--r-- | arch/arm/mach-omap2/clock_common_data.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/clock_common_data.c b/arch/arm/mach-omap2/clock_common_data.c index f69096b88cdb..6f96dc4ef254 100644 --- a/arch/arm/mach-omap2/clock_common_data.c +++ b/arch/arm/mach-omap2/clock_common_data.c | |||
@@ -20,18 +20,18 @@ | |||
20 | 20 | ||
21 | /* clksel_rate data common to 24xx/343x */ | 21 | /* clksel_rate data common to 24xx/343x */ |
22 | const struct clksel_rate gpt_32k_rates[] = { | 22 | const struct clksel_rate gpt_32k_rates[] = { |
23 | { .div = 1, .val = 0, .flags = RATE_IN_24XX | RATE_IN_343X | DEFAULT_RATE }, | 23 | { .div = 1, .val = 0, .flags = RATE_IN_24XX | RATE_IN_343X }, |
24 | { .div = 0 } | 24 | { .div = 0 } |
25 | }; | 25 | }; |
26 | 26 | ||
27 | const struct clksel_rate gpt_sys_rates[] = { | 27 | const struct clksel_rate gpt_sys_rates[] = { |
28 | { .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_343X | DEFAULT_RATE }, | 28 | { .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_343X }, |
29 | { .div = 0 } | 29 | { .div = 0 } |
30 | }; | 30 | }; |
31 | 31 | ||
32 | const struct clksel_rate gfx_l3_rates[] = { | 32 | const struct clksel_rate gfx_l3_rates[] = { |
33 | { .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_343X }, | 33 | { .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_343X }, |
34 | { .div = 2, .val = 2, .flags = RATE_IN_24XX | RATE_IN_343X | DEFAULT_RATE }, | 34 | { .div = 2, .val = 2, .flags = RATE_IN_24XX | RATE_IN_343X }, |
35 | { .div = 3, .val = 3, .flags = RATE_IN_243X | RATE_IN_343X }, | 35 | { .div = 3, .val = 3, .flags = RATE_IN_243X | RATE_IN_343X }, |
36 | { .div = 4, .val = 4, .flags = RATE_IN_243X | RATE_IN_343X }, | 36 | { .div = 4, .val = 4, .flags = RATE_IN_243X | RATE_IN_343X }, |
37 | { .div = 0 } | 37 | { .div = 0 } |