diff options
author | HyunKyung Kim <hk310.kim@samsung.com> | 2020-07-04 15:09:06 +0900 |
---|---|---|
committer | Long Ling <longling@google.com> | 2020-09-10 17:51:39 -0700 |
commit | c6eb476777f62f697eae9c551c04f02041b8dd90 (patch) | |
tree | da9ba03c54e33f909cff563fd7632ea13ec0682e /libhwc2.1/libdisplayinterface | |
parent | c8bd7e68666147ed87e3d8ba8e6a7b9cbb12475f (diff) | |
download | gs101-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.cpp | 32 | ||||
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h | 4 |
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; }; |