summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp')
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index 997b3e1..e63c498 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -1654,6 +1654,7 @@ int32_t ExynosDisplayDrmInterface::deliverWinConfigData()
if (mBrightnessCtrl.LhbmOn.is_dirty()) {
auto dbv = mBrightnessLevel.get();
+ auto old_dbv = dbv;
if (mBrightnessCtrl.LhbmOn.get()) {
uint32_t dbv_adj = 0;
if (mExynosDisplay->getColorAdjustedDbv(dbv_adj)) {
@@ -1668,7 +1669,7 @@ int32_t ExynosDisplayDrmInterface::deliverWinConfigData()
}
}
- if ((ret = drmReq.atomicAddProperty(mDrmConnector->id(),
+ if ((dbv != old_dbv) && (ret = drmReq.atomicAddProperty(mDrmConnector->id(),
mDrmConnector->brightness_level(), dbv)) < 0) {
HWC_LOGE(mExynosDisplay, "%s: Fail to set brightness_level property", __func__);
}
@@ -1754,6 +1755,10 @@ int32_t ExynosDisplayDrmInterface::deliverWinConfigData()
return ret;
}
drmReq.restorePset();
+ if (out_fences[mDrmCrtc->pipe()] >= 0) {
+ fence_close((int)out_fences[mDrmCrtc->pipe()], mExynosDisplay, FENCE_TYPE_RETIRE,
+ FENCE_IP_DPP);
+ }
if ((ret = updateColorSettings(drmReq, dqeEnable)) != 0) {
HWC_LOGE(mExynosDisplay, "failed to update color settings, ret=%d", ret);
return ret;