diff options
author | Alex Frid <afrid@nvidia.com> | 2011-11-19 17:28:31 -0800 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2011-12-15 12:06:15 +0530 |
commit | 051a0b2e40779eee1125308bac32e1957570ccd6 (patch) | |
tree | 543f5ff68118d020092e3b6c88d178810027a5b3 /arch/arm/mach-tegra/cpuidle-t3.c | |
parent | 7b6ad0c9924f567c8bd4dd7c2fbadf6ee8a960a8 (diff) |
ARM: tegra: dvfs: Add DVFS rails statistic
On Tegra3: complete account of in- and out-of-bound rails control.
On Tegra2: out-of-bound vdd_cpu control in LP2 state is not accounted.
Change-Id: Ib68cbbfe3e4f965e758aca17a0ba30277d530347
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/67340
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle-t3.c')
-rw-r--r-- | arch/arm/mach-tegra/cpuidle-t3.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/cpuidle-t3.c b/arch/arm/mach-tegra/cpuidle-t3.c index e326a9b99875..2dedf2c2248a 100644 --- a/arch/arm/mach-tegra/cpuidle-t3.c +++ b/arch/arm/mach-tegra/cpuidle-t3.c @@ -233,6 +233,8 @@ static void tegra3_idle_enter_lp2_cpu_0(struct cpuidle_device *dev, trace_power_start(POWER_CSTATE, 2, dev->cpu); clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &dev->cpu); + if (!is_lp_cluster()) + tegra_dvfs_rail_off(tegra_cpu_rail, entry_time); if (tegra_idle_lp2_last(sleep_time, 0) == 0) sleep_completed = true; @@ -242,7 +244,12 @@ static void tegra3_idle_enter_lp2_cpu_0(struct cpuidle_device *dev, } clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &dev->cpu); - } + exit_time = ktime_get(); + if (!is_lp_cluster()) + tegra_dvfs_rail_on(tegra_cpu_rail, exit_time); + } else + exit_time = ktime_get(); + #ifdef CONFIG_SMP if (!is_lp_cluster() && (num_online_cpus() > 1)) { @@ -258,7 +265,6 @@ static void tegra3_idle_enter_lp2_cpu_0(struct cpuidle_device *dev, } #endif - exit_time = ktime_get(); if (sleep_completed) { /* * Stayed in LP2 for the full time until the next tick, |