summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
diff options
context:
space:
mode:
authorHyunKyung Kim <hk310.kim@samsung.com>2020-12-23 15:50:00 +0900
committerLong Ling <longling@google.com>2021-06-21 10:46:38 -0700
commit6ac7fed9a52c4e4ba67ab5a2adc5dcce04af43ab (patch)
tree71d65f83f8e5567f748621102c8cb5197c8e7df4 /libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
parent20cf479ad1c0abb81878df3c0768717fce1643f8 (diff)
downloadgs101-6ac7fed9a52c4e4ba67ab5a2adc5dcce04af43ab.tar.gz
libhwc2.1: Force display color setting after readback
Display color setting could be skipped when readback was requested in the common code. This patch forces to set display color setting in the first frame after the frame that skipped display color setting. Bug: 175422660 Signed-off-by: HyunKyung Kim <hk310.kim@samsung.com> Change-Id: I68f8d2da4204ba595124c3c75d491a6a18322c11
Diffstat (limited to 'libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp')
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
index 4e1973c..b68f448 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
@@ -419,7 +419,9 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorBlob(
ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq)
{
/* dirty bit is valid only if enable is true */
- if (!prop.id() || (stage.enable && !stage.dirty))
+ if (!prop.id())
+ return NO_ERROR;
+ if (!mForceDisplayColorSetting && stage.enable && !stage.dirty)
return NO_ERROR;
int32_t ret = 0;
@@ -478,8 +480,9 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorBlob(
int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorSetting(
ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq)
{
- if ((mColorSettingChanged == false) ||
- (isPrimary() == false))
+ if (isPrimary() == false)
+ return NO_ERROR;
+ if (!mForceDisplayColorSetting && !mColorSettingChanged)
return NO_ERROR;
ExynosPrimaryDisplayModule* display =