summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/nvrm/core
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2010-06-17 21:11:18 -0700
committerGary King <gking@nvidia.com>2010-06-23 13:53:37 -0700
commitb4a85638135253daad20f9dba9a69a3228c51f59 (patch)
tree106d9d0e7674c9d76db1ed2463108f16cc823612 /arch/arm/mach-tegra/nvrm/core
parent6efeb6ab2a7dad72f2763cd2fb7ce7e09563adea (diff)
[ARM/tegra] power: tuned cpu idle loop.
- Updated cpuidle driver parameters: Determined LP2 state target_residency as a break even time balancing the power cost of LP2 entry/exit (estimated via LP2 latency), and LP2_vs_LP3 power saving - this approach is consistent with governor interpretation of residency. As a result the latency_to_residency factor reduced from 2.0 to 0.3. Included exit latency into idle time returned to governor to avoid double subtraction (by platform code and governor code) - otherwise under-reporting of LP2 time would skew downward governor correction algorithm. Replaced hard coded power good time with platform data. - Updated DVFS parameters Set CPU minimum frequency to 216MHz - additional dynamic power will be compensated by savings due to increased LP2 residency (216MHz is provided by low power PLL, and still allows CPU to run at lowest possible voltage). Changed maximum CPU/EMC frequency ratio to match new low corner settings. Change-Id: Ic58d0dd628f51bc3ede61a83c87792fca4f0845b Reviewed-on: http://git-master/r/2916 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/nvrm/core')
-rw-r--r--arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_clock_config.c2
-rw-r--r--arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.h4
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_clock_config.c b/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_clock_config.c
index 76153ab71602..8a86fc2776aa 100644
--- a/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_clock_config.c
+++ b/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_clock_config.c
@@ -300,7 +300,7 @@ static NvRmFreqKHz Ap20CpuToEmcRatio(NvRmFreqKHz Emc2xKHz)
7, 10, 11, 13, 14, 15, 17, 18, 18, 19, 20, 21, 22, 22, 23, 24,
24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32
};
- #define CPU_TO_EMC_MAX_RATIO (10)
+ #define CPU_TO_EMC_MAX_RATIO (12)
NvRmFreqKHz CpuKHz;
NvRmFreqKHz CpuMaxKHz = NvRmPrivGetSocClockLimits(NvRmModuleID_Cpu)->MaxKHz;
diff --git a/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.h b/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.h
index 7b387a61c07f..8b5c9d4ded39 100644
--- a/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.h
+++ b/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.h
@@ -58,7 +58,7 @@ extern "C"
*/
#define NVRM_DFS_PARAM_CPU_AP20 \
NvRmFreqMaximum, /* Maximum domain frequency set to h/w limit */ \
- 40000, /* Minimum domain frequency 40 MHz */ \
+ 216000, /* Minimum domain frequency 216 MHz */ \
1000, /* Frequency change upper band 1 MHz */ \
1000, /* Frequency change lower band 1 MHz */ \
{ /* RT starvation control parameters */ \
@@ -71,7 +71,7 @@ extern "C"
255, /* Proportional frequency boost increase 255/256 ~ 100% */ \
32, /* Proportional frequency boost decrease 32/256 ~ 12% */ \
},\
- 3, /* Relative adjustement of average freqiency 1/2^3 ~ 12% */ \
+ 2, /* Relative adjustement of average freqiency 1/2^2 ~ 25% */ \
1, /* Number of smaple intervals with NRT to trigger boost = 2 */ \
1 /* NRT idle cycles threshold = 1 */