summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface
diff options
context:
space:
mode:
authorHyunKyung Kim <hk310.kim@samsung.com>2020-07-04 15:09:06 +0900
committerLong Ling <longling@google.com>2020-09-10 17:51:39 -0700
commitc6eb476777f62f697eae9c551c04f02041b8dd90 (patch)
treeda9ba03c54e33f909cff563fd7632ea13ec0682e /libhwc2.1/libdisplayinterface
parentc8bd7e68666147ed87e3d8ba8e6a7b9cbb12475f (diff)
downloadgs101-c6eb476777f62f697eae9c551c04f02041b8dd90.tar.gz
libhwc2.1: Destroy old blobs for hdr after commit
DrmModeAtomicReq destorys old blobs after commit. This patch adds old blobs for hdr to DrmModeAtomicReq. Signed-off-by: HyunKyung Kim <hk310.kim@samsung.com> Change-Id: I11a24aa7cdf8264c6c0cae61b2e13478fd512234
Diffstat (limited to 'libhwc2.1/libdisplayinterface')
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp32
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h4
2 files changed, 9 insertions, 27 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
index fd9545b..d443036 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
@@ -51,8 +51,6 @@ ExynosDisplayDrmInterfaceModule::ExynosDisplayDrmInterfaceModule(ExynosDisplay *
ExynosDisplayDrmInterfaceModule::~ExynosDisplayDrmInterfaceModule()
{
- destroyOldBlobs(mOldBlobsForDisplayColor);
- destroyOldBlobs(mOldBlobsForPlaneColor);
}
void ExynosDisplayDrmInterfaceModule::destroyOldBlobs(
@@ -260,15 +258,6 @@ int32_t ExynosDisplayDrmInterfaceModule::createOetfBlobFromIDpp(
return NO_ERROR;
}
-int32_t ExynosDisplayDrmInterfaceModule::deliverWinConfigData()
-{
- /* Destroy old blobs for color management */
- destroyOldBlobs(mOldBlobsForDisplayColor);
- destroyOldBlobs(mOldBlobsForPlaneColor);
-
- return ExynosDisplayDrmInterface::deliverWinConfigData();
-}
-
int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorSetting(
ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq)
{
@@ -288,7 +277,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorSetting(
HWC_LOGE(mExynosDisplay, "%s: createCgcBlobFromIDqe fail", __func__);
return ret;
}
- mOldBlobsForDisplayColor.push_back(blobId);
+ drmReq.addOldBlob(blobId);
if ((ret = drmReq.atomicAddProperty(mDrmCrtc->id(),
mDrmCrtc->cgc_lut_property(), blobId)) < 0) {
HWC_LOGE(mExynosDisplay, "%s: Fail to set cgc_lut_property",
@@ -302,7 +291,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorSetting(
__func__);
return ret;
}
- mOldBlobsForDisplayColor.push_back(blobId);
+ drmReq.addOldBlob(blobId);
if ((ret = drmReq.atomicAddProperty(mDrmCrtc->id(),
mDrmCrtc->degamma_lut_property(), blobId)) < 0) {
HWC_LOGE(mExynosDisplay, "%s: Fail to set degamma_lut_property",
@@ -316,8 +305,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorSetting(
__func__);
return ret;
}
- mOldBlobsForDisplayColor.push_back(blobId);
- ALOGD("set regamma lut %d", blobId);
+ drmReq.addOldBlob(blobId);
if ((ret = drmReq.atomicAddProperty(mDrmCrtc->id(),
mDrmCrtc->gamma_lut_property(), blobId)) < 0) {
HWC_LOGE(mExynosDisplay, "%s: Fail to set gamma_lut_property",
@@ -331,8 +319,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorSetting(
__func__);
return ret;
}
- mOldBlobsForDisplayColor.push_back(blobId);
- ALOGD("set gamma matrix %d", blobId);
+ drmReq.addOldBlob(blobId);
if ((ret = drmReq.atomicAddProperty(mDrmCrtc->id(),
mDrmCrtc->gamma_matrix_property(), blobId)) < 0) {
HWC_LOGE(mExynosDisplay, "%s: Fail to set gamma_matrix_property",
@@ -346,8 +333,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayColorSetting(
__func__);
return ret;
}
- mOldBlobsForDisplayColor.push_back(blobId);
- ALOGD("set linear matrix %d", blobId);
+ drmReq.addOldBlob(blobId);
if ((ret = drmReq.atomicAddProperty(mDrmCrtc->id(),
mDrmCrtc->linear_matrix_property(), blobId)) < 0) {
HWC_LOGE(mExynosDisplay, "%s: Fail to set linear_matrix_property",
@@ -420,7 +406,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setPlaneColorSetting(
__func__);
return ret;
}
- mOldBlobsForPlaneColor.push_back(blobId);
+ drmReq.addOldBlob(blobId);
}
if ((ret = drmReq.atomicAddProperty(plane->id(),
plane->eotf_lut_property(), blobId)) < 0) {
@@ -439,7 +425,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setPlaneColorSetting(
__func__);
return ret;
}
- mOldBlobsForPlaneColor.push_back(blobId);
+ drmReq.addOldBlob(blobId);
}
if ((ret = drmReq.atomicAddProperty(plane->id(),
plane->gammut_matrix_property(), blobId)) < 0) {
@@ -458,7 +444,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setPlaneColorSetting(
__func__);
return ret;
}
- mOldBlobsForPlaneColor.push_back(blobId);
+ drmReq.addOldBlob(blobId);
}
if ((ret = drmReq.atomicAddProperty(plane->id(),
plane->tone_mapping_property(), blobId)) < 0) {
@@ -477,7 +463,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setPlaneColorSetting(
__func__);
return ret;
}
- mOldBlobsForPlaneColor.push_back(blobId);
+ drmReq.addOldBlob(blobId);
}
if ((ret = drmReq.atomicAddProperty(plane->id(),
plane->oetf_lut_property(), blobId)) < 0) {
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
index 5ef5e65..05943e5 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
@@ -29,7 +29,6 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface {
ExynosDisplayDrmInterfaceModule(ExynosDisplay *exynosDisplay);
virtual ~ExynosDisplayDrmInterfaceModule();
- virtual int32_t deliverWinConfigData();
virtual int32_t setDisplayColorSetting(
ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq);
virtual int32_t setPlaneColorSetting(
@@ -59,9 +58,6 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface {
uint32_t &blobId);
int32_t createOetfBlobFromIDpp(const IDisplayColorGS101::IDpp &dpp,
uint32_t &blobId);
-
- std::vector<uint32_t> mOldBlobsForDisplayColor;
- std::vector<uint32_t> mOldBlobsForPlaneColor;
private:
bool mColorSettingChanged = false;
};