summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/edp.c
diff options
context:
space:
mode:
authorDiwakar Tundlam <dtundlam@nvidia.com>2012-12-20 22:15:04 -0800
committerSimone Willett <swillett@nvidia.com>2012-12-21 14:54:17 -0800
commitf5e680768419f7e50f1ba9420e92d25ba0644327 (patch)
tree9e921d35ae8cf161e63ca05f405662d229607a25 /arch/arm/mach-tegra/edp.c
parent236709f23e842b994c423c4930ae856b2d2f515c (diff)
ARM: tegra11: dvfs: EDP freq granularity to follow CPU dvfs tables
Bug 1170986 Bug 1161126 Change-Id: I8d83903a58d9099fec7b04fadc558244177ebbbb Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com> Reviewed-on: http://git-master/r/173531 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Peter Zu <pzu@nvidia.com> Tested-by: Peter Zu <pzu@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'arch/arm/mach-tegra/edp.c')
-rw-r--r--arch/arm/mach-tegra/edp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/edp.c b/arch/arm/mach-tegra/edp.c
index e93ff8850dde..ff6d134b6c3f 100644
--- a/arch/arm/mach-tegra/edp.c
+++ b/arch/arm/mach-tegra/edp.c
@@ -449,13 +449,13 @@ unsigned int edp_calculate_maxf(struct tegra_edp_cpu_leakage_params *params,
int iddq_mA,
int n_cores_idx)
{
- unsigned int voltage_mV, freq_MHz;
+ unsigned int voltage_mV, freq_KHz;
unsigned int cur_effective = regulator_cur - edp_reg_override_mA;
int f, i, j, k;
s64 leakage_mA, dyn_mA, leakage_calc_step;
for (f = freq_voltage_lut_size - 1; f >= 0; f--) {
- freq_MHz = freq_voltage_lut[f].freq / 1000000;
+ freq_KHz = freq_voltage_lut[f].freq / 1000;
voltage_mV = freq_voltage_lut[f].voltage_mV;
/* Calculate leakage current */
@@ -491,7 +491,7 @@ unsigned int edp_calculate_maxf(struct tegra_edp_cpu_leakage_params *params,
leakage_mA = div64_s64(leakage_mA, 1000000);
/* Calculate dynamic current */
- dyn_mA = voltage_mV * freq_MHz;
+ dyn_mA = voltage_mV * freq_KHz / 1000;
/* Convert mV to V */
dyn_mA = div64_s64(dyn_mA, 1000);
dyn_mA *= params->dyn_consts_n[n_cores_idx];
@@ -499,7 +499,7 @@ unsigned int edp_calculate_maxf(struct tegra_edp_cpu_leakage_params *params,
dyn_mA = div64_s64(dyn_mA, 1000000);
if ((leakage_mA + dyn_mA) <= cur_effective)
- return freq_MHz * 1000;
+ return freq_KHz;
}
return 0;
}