don't actuate vsync hint when not needed
Change-Id: I61c43dd76041816ab8cbe9aeaa55c11c1479ed03
diff --git a/services/surfaceflinger/DisplayHardware/PowerHAL.cpp b/services/surfaceflinger/DisplayHardware/PowerHAL.cpp
index 0cb47d5..e41fbbc 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 @@
}
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;