diff options
author | Prashant Gaikwad <pgaikwad@nvidia.com> | 2011-11-15 19:59:47 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:50:11 -0800 |
commit | 21a64ae60c23b4c74dbb7674b676bd04fc99f448 (patch) | |
tree | 63e00aeda380599afb92105c968b480f31b17b62 /arch/arm/mach-tegra/clock.c | |
parent | e6afdf3d64560938b0272e20563397e996324633 (diff) |
ARM: tegra: clock: Enable EMC scaling for AP25
Workaround added to enable EMC scaling for AP25.
PLL switching support added for 300MHz EMC scaling step.
Bug 892505
Reviewed-on: http://git-master/r/#change,41718
Reviewed-on: http://git-master/r/#change,41720
Reviewed-on: http://git-master/r/#change,60861
Change-Id: I885b8dc4e3b6124ebed572c06cea773de6c83471
Reviewed-on: http://git-master/r/64465
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Rebase-Id: Rb8e58cfa7fe1106978030c8aea292e95a7a5da2b
Diffstat (limited to 'arch/arm/mach-tegra/clock.c')
-rw-r--r-- | arch/arm/mach-tegra/clock.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/clock.c b/arch/arm/mach-tegra/clock.c index 4b14cbc765d3..ec483c840672 100644 --- a/arch/arm/mach-tegra/clock.c +++ b/arch/arm/mach-tegra/clock.c @@ -332,16 +332,13 @@ static int clk_rate_change_notify(struct clk *c, unsigned long rate) return raw_notifier_call_chain(c->rate_change_nh, rate, NULL); } -int clk_set_parent(struct clk *c, struct clk *parent) +int clk_set_parent_locked(struct clk *c, struct clk *parent) { int ret = 0; - unsigned long flags; unsigned long new_rate; unsigned long old_rate; bool disable = false; - clk_lock_save(c, &flags); - if (!c->ops || !c->ops->set_parent) { ret = -ENOSYS; goto out; @@ -395,7 +392,19 @@ int clk_set_parent(struct clk *c, struct clk *parent) out: if (disable) clk_disable_locked(c); + return ret; +} + + +int clk_set_parent(struct clk *c, struct clk *parent) +{ + int ret = 0; + unsigned long flags; + + clk_lock_save(c, &flags); + ret = clk_set_parent_locked(c, parent); clk_unlock_restore(c, &flags); + return ret; } EXPORT_SYMBOL(clk_set_parent); |