summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authortkasivajhula <tkasivajhula@nvidia.com>2010-06-04 19:34:13 -0700
committerGary King <gking@nvidia.com>2010-06-07 11:14:06 -0700
commit5ce1e0a1a36b2034708366a47a88fce38ef4a252 (patch)
tree39c7cba5ef783e91bab0d70ddbfb15a6a3d982f5 /arch
parentcdbce62ac97f228bcd6e4bb37d24d4de6abc0d3f (diff)
tegra power: Create a new power state called SimpleSuspend
This new power state corresponds to doing an LP2 like operation at the end of Linux's suspend/resume sequence. When LP1/LP0 are working, we can replace SimpleSuspend with the real Suspend/DeepSleep operations. The SimpleSuspend state can also be used as a "sanity" state to assist in debugging power issues. Change-Id: Id7d2df0b263c0e2dc2b6bfe1e2f647a9c0d2f747 Reviewed-on: http://git-master/r/2160 Tested-by: Trivikram Kasivajhula <tkasivajhula@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com> Tested-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/include/nvodm_query.h4
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c3
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query.c3
3 files changed, 6 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/include/nvodm_query.h b/arch/arm/mach-tegra/include/nvodm_query.h
index a7656cfc7cae..c4939d18148f 100644
--- a/arch/arm/mach-tegra/include/nvodm_query.h
+++ b/arch/arm/mach-tegra/include/nvodm_query.h
@@ -860,6 +860,10 @@ typedef enum
/// is gated, plus DDR is in self-refresh. Wake up by any enabled interrupt.
NvOdmSocPowerState_Suspend,
+ /// State where the CPU is halted by the flow controller and
+ /// power is gated. Wake up by any enabled interrupt
+ NvOdmSocPowerState_SimpleSuspend,
+
/// Specifies to disable the SOC power state.
NvOdmSocPowerState_Active,
diff --git a/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c b/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c
index 454a53c82bd6..750d422c2f5a 100644
--- a/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c
+++ b/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c
@@ -704,8 +704,7 @@ const NvOdmSocPowerStateInfo* NvOdmQueryLowestSocPowerState(void)
LPStateSelection = NV_DRF_VAL(TEGRA_DEVKIT, BCT_CUSTOPT, LPSTATE, LPStateSelection);
}
// Lowest power state controlled by the flashed custom option.
- PowerStateInfo.LowestPowerState = ((LPStateSelection != TEGRA_DEVKIT_BCT_CUSTOPT_0_LPSTATE_LP1)?
- NvOdmSocPowerState_Suspend : NvOdmSocPowerState_DeepSleep);
+ PowerStateInfo.LowestPowerState = NvOdmSocPowerState_SimpleSuspend;
pPowerStateInfo = (const NvOdmSocPowerStateInfo*) &PowerStateInfo;
}
return (pPowerStateInfo);
diff --git a/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query.c b/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query.c
index d17f12b59559..9c3ea74ee67f 100644
--- a/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query.c
+++ b/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query.c
@@ -1213,8 +1213,7 @@ const NvOdmSocPowerStateInfo* NvOdmQueryLowestSocPowerState(void)
LPStateSelection = NV_DRF_VAL(TEGRA_DEVKIT, BCT_CUSTOPT, LPSTATE, LPStateSelection);
}
// Lowest power state controlled by the flashed custom option.
- PowerStateInfo.LowestPowerState = ((LPStateSelection != TEGRA_DEVKIT_BCT_CUSTOPT_0_LPSTATE_LP1)?
- NvOdmSocPowerState_Suspend : NvOdmSocPowerState_DeepSleep);
+ PowerStateInfo.LowestPowerState = NvOdmSocPowerState_SimpleSuspend;
pPowerStateInfo = (const NvOdmSocPowerStateInfo*) &PowerStateInfo;
}
return (pPowerStateInfo);