summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPavan Kunapuli <pkunapuli@nvidia.com>2014-01-06 15:54:59 +0530
committerHarry Hong <hhong@nvidia.com>2014-01-27 22:14:56 -0800
commit7155355d224be8661ff3bc0604dbfa1a20fffc51 (patch)
treea5be17bb38ad27343d0e8348d9096e15a92ea73e /arch
parentfb4dad5a785476fe8f9178b0bcb58b1f0324c87f (diff)
ARM: tegra: dvfs: Predict required voltage for a given freq
Exposing the tegra_dvfs_predict_millivolts interface to drivers to be used during tuning and getting the minimum core voltage for a given frequency. Bug 1423423 Reviewed-on: http://git-master/r/350418 (cherry picked from commit b604de0416eab8e8c32ad9e482fd64d831fb9449) Change-Id: Icc6492c6d91315020eaec3668e259c523acb218c Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com> Reviewed-on: http://git-master/r/356522 Reviewed-by: Harry Hong <hhong@nvidia.com> Tested-by: Harry Hong <hhong@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/dvfs.c1
-rw-r--r--arch/arm/mach-tegra/dvfs.h1
-rw-r--r--arch/arm/mach-tegra/include/mach/clk.h1
3 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/dvfs.c b/arch/arm/mach-tegra/dvfs.c
index bd49a32e1a48..afa69316513a 100644
--- a/arch/arm/mach-tegra/dvfs.c
+++ b/arch/arm/mach-tegra/dvfs.c
@@ -575,6 +575,7 @@ int tegra_dvfs_predict_millivolts(struct clk *c, unsigned long rate)
c->dvfs->dfll_millivolts : c->dvfs->millivolts;
return predict_millivolts(c, millivolts, rate);
}
+EXPORT_SYMBOL(tegra_dvfs_predict_millivolts);
int tegra_dvfs_predict_millivolts_pll(struct clk *c, unsigned long rate)
{
diff --git a/arch/arm/mach-tegra/dvfs.h b/arch/arm/mach-tegra/dvfs.h
index 298fa9c8a310..66183f2f7496 100644
--- a/arch/arm/mach-tegra/dvfs.h
+++ b/arch/arm/mach-tegra/dvfs.h
@@ -205,7 +205,6 @@ void tegra_dvfs_rail_off(struct dvfs_rail *rail, ktime_t now);
void tegra_dvfs_rail_on(struct dvfs_rail *rail, ktime_t now);
void tegra_dvfs_rail_pause(struct dvfs_rail *rail, ktime_t delta, bool on);
struct dvfs_rail *tegra_dvfs_get_rail_by_name(const char *reg_id);
-int tegra_dvfs_predict_millivolts(struct clk *c, unsigned long rate);
int tegra_dvfs_predict_millivolts_pll(struct clk *c, unsigned long rate);
int tegra_dvfs_predict_millivolts_dfll(struct clk *c, unsigned long rate);
int tegra_dvfs_core_cap_level_apply(int level);
diff --git a/arch/arm/mach-tegra/include/mach/clk.h b/arch/arm/mach-tegra/include/mach/clk.h
index 18f6cf76938f..54efff7e322f 100644
--- a/arch/arm/mach-tegra/include/mach/clk.h
+++ b/arch/arm/mach-tegra/include/mach/clk.h
@@ -42,6 +42,7 @@ void tegra_periph_reset_assert(struct clk *c);
int tegra_dvfs_set_rate(struct clk *c, unsigned long rate);
int tegra_dvfs_override_core_voltage(struct clk *c, int override_mv);
int tegra_dvfs_set_fmax_at_vmin(struct clk *c, unsigned long f_max, int v_min);
+int tegra_dvfs_predict_millivolts(struct clk *c, unsigned long rate);
unsigned long clk_get_rate_all_locked(struct clk *c);
#ifdef CONFIG_ARCH_TEGRA_2x_SOC