diff options
author | Alex Frid <afrid@nvidia.com> | 2010-07-30 19:39:36 -0700 |
---|---|---|
committer | Yu-Huan Hsu <yhsu@nvidia.com> | 2010-08-25 19:38:23 -0700 |
commit | 6e73bfc1bdae482151b94386140c2f303aaabaad (patch) | |
tree | cf1fa77c575d5c4c580afc4a589b6a458eb45701 | |
parent | 46346d35721caf61eabdd5e7b7ce614a3c71e2a9 (diff) |
[ARM/tegra] RM: Updated hotplug request timing.
Removed filtering of CPU1 On/Off repeated requests from RM - no need,
since hotplug code is doing it.
Bug 722399
(cherry picked from commit b6ee6b6ac46e3ebcd3dda63fa786f4aa90808b90)
Change-Id: I0c8ba5a2c5b0eb167f5f1e7cc1281b9f081dd5d6
Reviewed-on: http://git-master/r/5569
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.c b/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.c index 53bd8a2d3ff9..f548872947ad 100644 --- a/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.c +++ b/arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.c @@ -405,13 +405,11 @@ NvRmPrivAp20GetPmRequest( /* * Request OS kernel to turn CPU1 Off if all of the following is true: * (a) CPU frequency is below OnMin threshold, - * (b) Last request was CPU1 On request - * (c) CPU1 is actually On + * (b) CPU1 is actually On * * Request OS kernel to turn CPU1 On if all of the following is true: * (a) CPU frequency is above OffMax threshold - * (b) Last request was CPU1 Off request - * (c) CPU1 is actually Off + * (b) CPU1 is actually Off */ if (CpuLoadGaugeKHz < s_Cpu1OnMinKHz) { @@ -424,8 +422,11 @@ NvRmPrivAp20GetPmRequest( if ((t - s_Cpu1OffPendingCnt) < (NVRM_CPU1_OFF_PENDING_MS * 1000)) return PmRequest; - if ((s_LastPmRequest & NvRmPmRequest_CpuOnFlag) && (!Cpu1Off)) + if (!Cpu1Off) + { s_LastPmRequest = PmRequest = (NvRmPmRequest_CpuOffFlag | 0x1); + s_Cpu1OffPendingCnt = 0; // re-start delay after request + } #if NVRM_TEST_PMREQUEST_UP_MODE NV_REGW(hRmDevice, NvRmPrivModuleID_ClockAndReset, 0, CLK_RST_CONTROLLER_RST_CPU_CMPLX_SET_0, @@ -443,10 +444,11 @@ NvRmPrivAp20GetPmRequest( if ((t - s_Cpu1OnPendingCnt) < (NVRM_CPU1_ON_PENDING_MS * 1000)) return PmRequest; - if ((s_LastPmRequest & NvRmPmRequest_CpuOffFlag) && Cpu1Off) + if (Cpu1Off) { s_LastPmRequest = PmRequest = (NvRmPmRequest_CpuOnFlag | 0x1); *pCpuKHz = NvRmPrivGetSocClockLimits(NvRmModuleID_Cpu)->MaxKHz; + s_Cpu1OnPendingCnt = 0; // re-start delay after request } #if NVRM_TEST_PMREQUEST_UP_MODE NV_REGW(hRmDevice, NvRmPrivModuleID_ClockAndReset, 0, |