Merge "sdm: close the release fences properly" into display.lnx.5.1
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index 0fbf32f..82df91b 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -462,6 +462,7 @@
DisplayError error = kErrorNone;
HWCDebugHandler::Get()->GetProperty(ENABLE_NULL_DISPLAY_PROP, &null_display_mode_);
+ HWCDebugHandler::Get()->GetProperty(ENABLE_ASYNC_POWERMODE, &async_power_mode_);
if (null_display_mode_) {
DisplayNull *disp_null = new DisplayNull();
@@ -946,6 +947,11 @@
// Update release fence.
release_fence_ = release_fence;
current_power_mode_ = mode;
+
+ // Close the release fences in synchronous power updates
+ if (!async_power_mode_) {
+ PostPowerMode();
+ }
return HWC2::Error::None;
}
diff --git a/sdm/libs/hwc2/hwc_display.h b/sdm/libs/hwc2/hwc_display.h
index 80dd963..75dbee1 100644
--- a/sdm/libs/hwc2/hwc_display.h
+++ b/sdm/libs/hwc2/hwc_display.h
@@ -448,6 +448,7 @@
int release_fence_ = -1;
bool pending_config_ = false;
hwc2_config_t pending_config_index_ = 0;
+ int async_power_mode_ = 0;
};
inline int HWCDisplay::Perform(uint32_t operation, ...) {