summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/clock.c
diff options
context:
space:
mode:
authorPrashant Gaikwad <pgaikwad@nvidia.com>2011-11-15 19:59:47 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:50:11 -0800
commit21a64ae60c23b4c74dbb7674b676bd04fc99f448 (patch)
tree63e00aeda380599afb92105c968b480f31b17b62 /arch/arm/mach-tegra/clock.c
parente6afdf3d64560938b0272e20563397e996324633 (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.c17
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);