summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2010-07-30 19:39:36 -0700
committerYu-Huan Hsu <yhsu@nvidia.com>2010-08-25 19:38:23 -0700
commit6e73bfc1bdae482151b94386140c2f303aaabaad (patch)
treecf1fa77c575d5c4c580afc4a589b6a458eb45701 /arch
parent46346d35721caf61eabdd5e7b7ce614a3c71e2a9 (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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/nvrm/core/ap20/ap20rm_power_dfs.c14
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,