diff options
author | Alex Frid <afrid@nvidia.com> | 2010-06-17 21:11:18 -0700 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-06-23 13:53:37 -0700 |
commit | b4a85638135253daad20f9dba9a69a3228c51f59 (patch) | |
tree | 106d9d0e7674c9d76db1ed2463108f16cc823612 /arch/arm/mach-tegra/nvrm | |
parent | 6efeb6ab2a7dad72f2763cd2fb7ce7e09563adea (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')
-rw-r--r-- | arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_clock_config.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.h | 4 |
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 */ |