summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/nvrm/core/common/nvrm_power_dfs.c9
-rw-r--r--arch/arm/mach-tegra/nvrm_user.c4
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);