diff options
Diffstat (limited to 'arch/arm/mach-tegra/clock.c')
-rw-r--r-- | arch/arm/mach-tegra/clock.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/clock.c b/arch/arm/mach-tegra/clock.c index c9653d1e09b5..1c0d774e447f 100644 --- a/arch/arm/mach-tegra/clock.c +++ b/arch/arm/mach-tegra/clock.c @@ -602,6 +602,24 @@ void tegra_periph_reset_assert(struct clk *c) } EXPORT_SYMBOL(tegra_periph_reset_assert); +/* dvfs initialization may lower default maximum rate */ +void __init tegra_init_max_rate(struct clk *c, unsigned long max_rate) +{ + struct clk *shared_bus_user; + + if (c->max_rate <= max_rate) + return; + + pr_warning("Lowering %s maximum rate from %lu to %lu\n", + c->name, c->max_rate, max_rate); + + c->max_rate = max_rate; + list_for_each_entry(shared_bus_user, + &c->shared_bus_list, u.shared_bus_user.node) { + shared_bus_user->max_rate = max_rate; + } +} + void __init tegra_init_clock(void) { tegra_soc_init_clocks(); |