diff options
Diffstat (limited to 'arch/arm/mach-tegra/tegra3_clocks.c')
-rw-r--r-- | arch/arm/mach-tegra/tegra3_clocks.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/tegra3_clocks.c b/arch/arm/mach-tegra/tegra3_clocks.c index e446870d0e73..a46074d43f53 100644 --- a/arch/arm/mach-tegra/tegra3_clocks.c +++ b/arch/arm/mach-tegra/tegra3_clocks.c @@ -5,8 +5,7 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -1046,6 +1045,8 @@ static long tegra3_sbus_cmplx_round_rate(struct clk *c, unsigned long rate) struct clk *new_parent; struct clk *new_parent_after_round; + rate = max(rate, c->min_rate); + new_parent = (rate <= c->u.system.threshold) ? c->u.system.sclk_low : c->u.system.sclk_high; @@ -3473,6 +3474,8 @@ static struct clk tegra_clk_pclk = { .min_rate = 40000000, }; +static struct raw_notifier_head sbus_rate_change_nh; + static struct clk tegra_clk_sbus_cmplx = { .name = "sbus", .parent = &tegra_clk_sclk, @@ -3488,6 +3491,7 @@ static struct clk tegra_clk_sbus_cmplx = { .threshold = 108000000, /* exact factor of low range pll_p */ #endif }, + .rate_change_nh = &sbus_rate_change_nh, }; static struct clk tegra_clk_blink = { @@ -3773,6 +3777,7 @@ struct clk tegra_list_clks[] = { SHARED_CLK("usb1.sclk", "tegra-ehci.0", "sclk", &tegra_clk_sbus_cmplx, NULL, 0), SHARED_CLK("usb2.sclk", "tegra-ehci.1", "sclk", &tegra_clk_sbus_cmplx, NULL, 0), SHARED_CLK("usb3.sclk", "tegra-ehci.2", "sclk", &tegra_clk_sbus_cmplx, NULL, 0), + SHARED_CLK("mon.avp", "tegra_actmon", "avp", &tegra_clk_sbus_cmplx, NULL, 0), SHARED_CLK("avp.emc", "tegra-avp", "emc", &tegra_clk_emc, NULL, 0), SHARED_CLK("cpu.emc", "cpu", "emc", &tegra_clk_emc, NULL, 0), SHARED_CLK("disp1.emc", "tegradc.0", "emc", &tegra_clk_emc, NULL, 0), |