diff options
author | Alex Frid <afrid@nvidia.com> | 2011-10-21 21:47:36 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:49:45 -0800 |
commit | 9738f60a41ff7910e58f3100f5dcb1fb5c2e0321 (patch) | |
tree | 893ab8c3859b3a395f6cc3360744b903ce86dab6 /arch/arm/mach-tegra/tegra3_clocks.c | |
parent | 0d68bbc3997b6ef0540c08d7098b3e3d630b6d67 (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.c | 3 |
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) |