diff options
author | Alex Frid <afrid@nvidia.com> | 2010-11-25 20:56:57 -0800 |
---|---|---|
committer | Niket Sirsi <nsirsi@nvidia.com> | 2010-11-30 17:51:46 -0800 |
commit | 01a0b8146665a17dd063b4b8e2fe80e5bd795c22 (patch) | |
tree | f27dd34ebd14daa24d25f7c6de9240194cab54df | |
parent | a735cfb19d8e974fe4111b0686e78ebbb1bf43ca (diff) |
[ARM/tegra] RM: Stopped DVFS in PM_SUSPEND_PREPARE.
Bug 760630
Change-Id: If5e4ac1045cdb46d12a03bf47f24fb712fdbd11e
Reviewed-on: http://git-master/r/11632
Reviewed-by: Niket Sirsi <nsirsi@nvidia.com>
Tested-by: Niket Sirsi <nsirsi@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/nvrm/core/common/nvrm_power_dfs.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-tegra/nvrm_user.c | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/nvrm/core/common/nvrm_power_dfs.c b/arch/arm/mach-tegra/nvrm/core/common/nvrm_power_dfs.c index 3107ad526908..4946a6442d93 100644 --- a/arch/arm/mach-tegra/nvrm/core/common/nvrm_power_dfs.c +++ b/arch/arm/mach-tegra/nvrm/core/common/nvrm_power_dfs.c @@ -469,7 +469,6 @@ DvsChangeCpuVoltage( /* * Enable/Disable voltage scaling */ -static void NvRmPrivDvsRun(void); static void NvRmPrivDvsStopAtNominal(void); /* @@ -2549,7 +2548,13 @@ static void NvRmPrivDvsStopAtNominal(void) DvsChangeCpuVoltage(pDfs->hRm, pDvs, pDvs->NominalCpuMv); } -static void NvRmPrivDvsRun(void) +void NvRmPrivDvsStop(void) +{ + NvRmDvs* pDvs = &s_Dfs.VoltageScaler; + pDvs->StopFlag = NV_TRUE; +} + +void NvRmPrivDvsRun(void) { NvRmDvs* pDvs = &s_Dfs.VoltageScaler; pDvs->UpdateFlag = NV_TRUE; diff --git a/arch/arm/mach-tegra/nvrm_user.c b/arch/arm/mach-tegra/nvrm_user.c index db46298bd82d..97e425b46dfd 100644 --- a/arch/arm/mach-tegra/nvrm_user.c +++ b/arch/arm/mach-tegra/nvrm_user.c @@ -63,6 +63,8 @@ static long nvrm_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg); static int nvrm_mmap(struct file *file, struct vm_area_struct *vma); extern void reset_cpu(unsigned int cpu, unsigned int reset); +extern void NvRmPrivDvsStop(void); +extern void NvRmPrivDvsRun(void); //Variables for AVP suspend operation extern NvRmDeviceHandle s_hRmGlobal; @@ -611,12 +613,14 @@ int tegra_pm_notifier(struct notifier_block *nb, notify_daemon(STRING_PM_DISPLAY_OFF); #endif notify_daemon(STRING_PM_SUSPEND_PREPARE); + NvRmPrivDvsStop(); break; case PM_POST_SUSPEND: notify_daemon(STRING_PM_POST_SUSPEND); #ifndef CONFIG_HAS_EARLYSUSPEND notify_daemon(STRING_PM_DISPLAY_ON); #endif + NvRmPrivDvsRun(); break; default: printk(KERN_ERR "%s: unknown event %ld\n", __func__, event); |