diff options
author | Alex Frid <afrid@nvidia.com> | 2010-06-10 22:28:31 -0700 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-06-11 16:34:42 -0700 |
commit | 0ad0f96d590c15c8bbe1165ed8da250edc222a6f (patch) | |
tree | 12fef3c48dadd5de705c0e7f255ecc37f16aa41f | |
parent | 820ab291521d4255ad03fd013e5356f9e70f6868 (diff) |
[ARM/tegra] RM: speed up clock usage API.
Skipped spare clock h/w access when DVFS is running - it was not used,
anyway, since all rates in this case are available in DVFS variables.
Change-Id: Id324c7904e30ea8fe50b319cfd06c75a721b6b3f
Reviewed-on: http://git-master/r/2458
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/nvrm/core/common/nvrm_power_dfs.c | 11 |
1 files changed, 7 insertions, 4 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 a0bac50637cd..7ac8d331fecc 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 @@ -3283,17 +3283,20 @@ NvRmDfsGetClockUtilization( NV_ASSERT(pClockUsage); NV_ASSERT((0 < ClockId) && (ClockId < NvRmDfsClockId_Num)); - DfsClockFreqGet(hRmDeviceHandle, &DfsKHz); - - NvOsIntrMutexLock(pDfs->hIntrMutex); - // If DFS is not running - update current frequencies directly from h/w if (pDfs->DfsRunState <= NvRmDfsRunState_Stopped) { + DfsClockFreqGet(hRmDeviceHandle, &DfsKHz); + + NvOsIntrMutexLock(pDfs->hIntrMutex); pDfs->CurrentKHz = DfsKHz; if (pDfs->Samplers[ClockId].MonitorPresent) pDfs->Samplers[ClockId].AverageKHz = DfsKHz.Domains[ClockId]; } + else + { + NvOsIntrMutexLock(pDfs->hIntrMutex); + } // Update clock info pClockUsage->MinKHz = pDfs->DfsParameters[ClockId].MinKHz; pClockUsage->MaxKHz = pDfs->DfsParameters[ClockId].MaxKHz; |