diff options
author | Alex Frid <afrid@nvidia.com> | 2010-08-25 23:13:21 -0700 |
---|---|---|
committer | Yu-Huan Hsu <yhsu@nvidia.com> | 2010-09-09 21:29:13 -0700 |
commit | 89079690fd134eb2cbd53b72b2f8b9cfba01ff25 (patch) | |
tree | 5accdbd6d373f5637e760acbaeb31a486d6d7005 /arch | |
parent | 9053084636be53fab6c0d9f80863b890e981096a (diff) |
[ARM/tegra] RM: Set pulse mode for 3D busy hints.
Set pulse mode for 3D busy hints to speed up frequency/voltage
decrease after hint is canceled.
Bug 726052
(cherry picked from commit 58c01c2fc28a3e90e661954ab76cd7f65b0bd2cf)
Change-Id: I77a77d9fc73b1675bdaddb08663cfed07900ffa7
Reviewed-on: http://git-master/r/6281
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/clock_nvrm.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/clock_nvrm.c b/arch/arm/mach-tegra/clock_nvrm.c index 598c001179a2..925c8fb6ad18 100644 --- a/arch/arm/mach-tegra/clock_nvrm.c +++ b/arch/arm/mach-tegra/clock_nvrm.c @@ -102,8 +102,10 @@ static int tegra_periph_clk_enable(struct clk *c) /* max out emc when 3d is on */ if (NVRM_MODULE_ID_MODULE(c->module) == NvRmModuleID_3D) { - NvRmPowerBusyHint(s_hRmGlobal, NvRmDfsClockId_Emc, clk_pwr_client, - 0xffffffff, NvRmFreqMaximum); + NvRmDfsBusyHint hint = + {NvRmDfsClockId_Emc, 0xffffffff, NvRmFreqMaximum, true}; + NvRmPowerBusyHintMulti(s_hRmGlobal, clk_pwr_client, &hint, 1, + NvRmDfsBusyHintSyncMode_Async); } return 0; @@ -114,7 +116,9 @@ static void tegra_periph_clk_disable(struct clk *c) NvError e; if (NVRM_MODULE_ID_MODULE(c->module) == NvRmModuleID_3D) { - NvRmPowerBusyHint(s_hRmGlobal, NvRmDfsClockId_Emc, clk_pwr_client, 0, 0); + NvRmDfsBusyHint hint = {NvRmDfsClockId_Emc, 0, 0, true}; + NvRmPowerBusyHintMulti(s_hRmGlobal, clk_pwr_client, &hint, 1, + NvRmDfsBusyHintSyncMode_Async); } e = NvRmPowerModuleClockControl(s_hRmGlobal, c->module, |