summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mathias Agopian <mathias@google.com> 2012-04-27 13:55:05 -0700
committer Mathias Agopian <mathias@google.com> 2012-04-27 13:55:05 -0700
commit06e51a0aaf76fe53cef20c3345cf1ebda2b3461e (patch)
tree9f23571632a48ebad5e29a6be867285b85ee66fa
parent03e407270c7ad76632f982c886d0776bed9e9b4c (diff)
don't actuate vsync hint when not needed
Change-Id: I61c43dd76041816ab8cbe9aeaa55c11c1479ed03
-rw-r--r--services/surfaceflinger/DisplayHardware/PowerHAL.cpp8
-rw-r--r--services/surfaceflinger/DisplayHardware/PowerHAL.h1
2 files changed, 7 insertions, 2 deletions
diff --git a/services/surfaceflinger/DisplayHardware/PowerHAL.cpp b/services/surfaceflinger/DisplayHardware/PowerHAL.cpp
index 0cb47d59a8..e41fbbc319 100644
--- a/services/surfaceflinger/DisplayHardware/PowerHAL.cpp
+++ b/services/surfaceflinger/DisplayHardware/PowerHAL.cpp
@@ -25,7 +25,7 @@
namespace android {
// ---------------------------------------------------------------------------
-PowerHAL::PowerHAL() : mPowerModule(0) {
+PowerHAL::PowerHAL() : mPowerModule(0), mVSyncHintEnabled(false) {
int err = hw_get_module(POWER_HARDWARE_MODULE_ID,
(const hw_module_t **)&mPowerModule);
ALOGW_IF(err, "%s module not found", POWER_HARDWARE_MODULE_ID);
@@ -44,7 +44,11 @@ status_t PowerHAL::vsyncHint(bool enabled) {
}
if (mPowerModule->common.module_api_version >= POWER_MODULE_API_VERSION_0_2) {
if (mPowerModule->powerHint) {
- mPowerModule->powerHint(mPowerModule, POWER_HINT_VSYNC, (void*)enabled);
+ if (mVSyncHintEnabled != bool(enabled)) {
+ mPowerModule->powerHint(mPowerModule,
+ POWER_HINT_VSYNC, (void*)enabled);
+ mVSyncHintEnabled = bool(enabled);
+ }
}
}
return NO_ERROR;
diff --git a/services/surfaceflinger/DisplayHardware/PowerHAL.h b/services/surfaceflinger/DisplayHardware/PowerHAL.h
index 929bc0396f..ef67b8f192 100644
--- a/services/surfaceflinger/DisplayHardware/PowerHAL.h
+++ b/services/surfaceflinger/DisplayHardware/PowerHAL.h
@@ -36,6 +36,7 @@ public:
private:
power_module_t* mPowerModule;
+ bool mVSyncHintEnabled;
};
// ---------------------------------------------------------------------------