summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra3_clocks.c
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2011-10-21 21:47:36 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:49:45 -0800
commit9738f60a41ff7910e58f3100f5dcb1fb5c2e0321 (patch)
tree893ab8c3859b3a395f6cc3360744b903ce86dab6 /arch/arm/mach-tegra/tegra3_clocks.c
parent0d68bbc3997b6ef0540c08d7098b3e3d630b6d67 (diff)
ARM: tegra: clock: Update Tegra3 EMC clock configuration
- Moved initialization of Tegra3 dram configuration variables from EMC DVFS setup to EMC clock initialization, so that these variables can be used independently of DVFS. - Added graceful exit from EMC DVFS setup in case of empty DVFS table - Applied EMC minimum rate to direct EMC clock round rate operations (currently applied only to shared EMC bus update). (cherry picked from commit c6b3f6e0eb0b6e3485d02fc5306a1c09cbacf914) (cherry picked from commit cbf09d55bb9fa9c9ade7bb472859b4808f47b615) Change-Id: I84bbdc05ff7a0670ec9d088b98a9df25683db4df Reviewed-on: http://git-master/r/62029 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: R0fb03ff9903aa51aa922b4a49eed96aad0e97a06
Diffstat (limited to 'arch/arm/mach-tegra/tegra3_clocks.c')
-rw-r--r--arch/arm/mach-tegra/tegra3_clocks.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/tegra3_clocks.c b/arch/arm/mach-tegra/tegra3_clocks.c
index 84b379ead5d5..3b92d7d7bec5 100644
--- a/arch/arm/mach-tegra/tegra3_clocks.c
+++ b/arch/arm/mach-tegra/tegra3_clocks.c
@@ -2329,6 +2329,7 @@ static struct clk_ops tegra_clk_out_ops = {
static void tegra3_emc_clk_init(struct clk *c)
{
tegra3_periph_clk_init(c);
+ tegra_emc_dram_type_init(c);
/* On A01 limit EMC maximum rate to boot frequency;
starting with A02 full PLLM range should be supported */
@@ -2340,7 +2341,7 @@ static void tegra3_emc_clk_init(struct clk *c)
static long tegra3_emc_clk_round_rate(struct clk *c, unsigned long rate)
{
- long new_rate = rate;
+ long new_rate = max(rate, c->min_rate);
new_rate = tegra_emc_round_rate(new_rate);
if (new_rate < 0)