diff options
author | Thara Gopinath <thara@ti.com> | 2011-01-21 15:32:30 +0530 |
---|---|---|
committer | Nicolas Pitre <nicolas.pitre@linaro.org> | 2011-04-01 23:02:59 -0400 |
commit | cec79c90b83c8a2e52d36f7d6a2e19541bb076a8 (patch) | |
tree | 00658d705812d1d4681dd6f7f16a26de115566c7 /arch | |
parent | c4c60ba7d625a2a2a855c5a4b41e49b7691d7fb8 (diff) |
OMAP: Disable Smartreflex across DVFS
This patch disables smartreflex for a particular voltage
domain when the the voltage domain and the devices belonging
to it is being scaled and re-enables it back once the scaling
is done.
Signed-off-by: Thara Gopinath <thara@ti.com>
Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com>
Diffstat (limited to 'arch')
-rwxr-xr-x | arch/arm/mach-omap2/dvfs.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/dvfs.c b/arch/arm/mach-omap2/dvfs.c index 1882f56807e..476e572c53f 100755 --- a/arch/arm/mach-omap2/dvfs.c +++ b/arch/arm/mach-omap2/dvfs.c @@ -530,6 +530,9 @@ static int omap_dvfs_voltage_scale(struct omap_vdd_dvfs_info *dvfs_info) curr_volt = omap_voltage_get_nom_volt(voltdm); + /* Disable smartreflex module across voltage and frequency scaling */ + omap_sr_disable(voltdm); + if (curr_volt == volt) { is_volt_scaled = 1; } else if (curr_volt < volt) { @@ -537,6 +540,7 @@ static int omap_dvfs_voltage_scale(struct omap_vdd_dvfs_info *dvfs_info) if (ret) { pr_warning("%s: Unable to scale the %s to %ld volt\n", __func__, voltdm->name, volt); + omap_sr_enable(voltdm); mutex_unlock(&dvfs_info->scaling_mutex); return ret; } @@ -571,6 +575,9 @@ static int omap_dvfs_voltage_scale(struct omap_vdd_dvfs_info *dvfs_info) if (!is_volt_scaled && !ret) omap_voltage_scale_vdd(voltdm, volt); + /* Enable Smartreflex module */ + omap_sr_enable(voltdm); + mutex_unlock(&dvfs_info->scaling_mutex); /* calculate the voltages for dependent vdd's */ |