summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/dvfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/dvfs.c')
-rw-r--r--arch/arm/mach-tegra/dvfs.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/dvfs.c b/arch/arm/mach-tegra/dvfs.c
index cb33e3db862f..c36b81d2c402 100644
--- a/arch/arm/mach-tegra/dvfs.c
+++ b/arch/arm/mach-tegra/dvfs.c
@@ -38,6 +38,7 @@
#include "board.h"
#include "clock.h"
#include "dvfs.h"
+#include "timer.h"
#define DVFS_RAIL_STATS_BIN 25
#define DVFS_RAIL_STATS_SCALE 2
@@ -308,6 +309,13 @@ static int dvfs_rail_connect_to_regulator(struct dvfs_rail *rail)
rail->reg = reg;
}
+ v = regulator_enable(rail->reg);
+ if (v < 0) {
+ pr_err("tegra_dvfs: failed on enabling regulator %s\n, err %d",
+ rail->reg_id, v);
+ return v;
+ }
+
v = regulator_get_voltage(rail->reg);
if (v < 0) {
pr_err("tegra_dvfs: failed initial get %s voltage\n",
@@ -681,9 +689,13 @@ int __init tegra_dvfs_late_init(void)
{
bool connected = true;
struct dvfs_rail *rail;
+ int cur_linear_age = tegra_get_linear_age();
mutex_lock(&dvfs_lock);
+ if (cur_linear_age >= 0)
+ tegra_dvfs_age_cpu(cur_linear_age);
+
list_for_each_entry(rail, &dvfs_rail_list, node)
if (dvfs_rail_connect_to_regulator(rail))
connected = false;