diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-12-07 00:22:09 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-12-07 00:22:09 +0000 |
commit | 12fb6fba570634dc51ca31cbdc39a3ce389246c9 (patch) | |
tree | 022af22e02febe37e0a6f7e0a9905aed6bb5f3e5 /libhwc2.1/libdisplayinterface | |
parent | beeee661c649719ba4f7a24aea0ac7bc3e1c2f7f (diff) | |
parent | 48a8ee8241cfc8b3f8c9a8b963e0916912d0bc73 (diff) | |
download | gs101-android13-qpr2-s10-release.tar.gz |
Snap for 9376496 from 48a8ee8241cfc8b3f8c9a8b963e0916912d0bc73 to tm-qpr2-releaseandroid-13.0.0_r49android-13.0.0_r45android-13.0.0_r44android-13.0.0_r43android-13.0.0_r42android-13.0.0_r41android-13.0.0_r40android-13.0.0_r39android-13.0.0_r38android-13.0.0_r37android-13.0.0_r36android-13.0.0_r35android-13.0.0_r34android-13.0.0_r33android-13.0.0_r32android13-qpr2-s9-releaseandroid13-qpr2-s8-releaseandroid13-qpr2-s7-releaseandroid13-qpr2-s6-releaseandroid13-qpr2-s5-releaseandroid13-qpr2-s3-releaseandroid13-qpr2-s2-releaseandroid13-qpr2-s12-releaseandroid13-qpr2-s11-releaseandroid13-qpr2-s10-releaseandroid13-qpr2-s1-releaseandroid13-qpr2-releaseandroid13-qpr2-b-s1-release
Change-Id: I1052b54b025e149a5464df6098e319538056f16a
Diffstat (limited to 'libhwc2.1/libdisplayinterface')
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp | 6 | ||||
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h | 14 |
2 files changed, 7 insertions, 13 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp index 2969eea..71807d9 100644 --- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp +++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp @@ -797,6 +797,7 @@ const std::string ExynosDisplayDrmInterfaceModule::GetPanelInfo(const std::strin int32_t ExynosDisplayDrmInterfaceModule::createHistoRoiBlob(uint32_t &blobId) { struct histogram_roi histo_roi; + std::unique_lock<std::mutex> lk((mHistogramInfo->mSetHistInfoMutex)); histo_roi.start_x = mHistogramInfo->getHistogramROI().start_x; histo_roi.start_y = mHistogramInfo->getHistogramROI().start_y; histo_roi.hsize = mHistogramInfo->getHistogramROI().hsize; @@ -814,6 +815,7 @@ int32_t ExynosDisplayDrmInterfaceModule::createHistoRoiBlob(uint32_t &blobId) { int32_t ExynosDisplayDrmInterfaceModule::createHistoWeightsBlob(uint32_t &blobId) { struct histogram_weights histo_weights; + std::unique_lock<std::mutex> lk((mHistogramInfo->mSetHistInfoMutex)); histo_weights.weight_r = mHistogramInfo->getHistogramWeights().weight_r; histo_weights.weight_g = mHistogramInfo->getHistogramWeights().weight_g; histo_weights.weight_b = mHistogramInfo->getHistogramWeights().weight_b; @@ -864,7 +866,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayHistoBlob( int32_t ExynosDisplayDrmInterfaceModule::setDisplayHistogramSetting( ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq) { - if ((mHistogramInfoRegistered == false) || (isPrimary() == false)) return NO_ERROR; + if ((isHistogramInfoRegistered() == false) || (isPrimary() == false)) return NO_ERROR; int ret = NO_ERROR; @@ -894,7 +896,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayHistogramSetting( } int32_t ExynosDisplayDrmInterfaceModule::setHistogramControl(hidl_histogram_control_t control) { - if ((mHistogramInfoRegistered == false) || (isPrimary() == false)) return NO_ERROR; + if ((isHistogramInfoRegistered() == false) || (isPrimary() == false)) return NO_ERROR; int ret = NO_ERROR; uint32_t crtc_id = mDrmCrtc->id(); diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h index f783c5f..b730879 100644 --- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h +++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h @@ -78,17 +78,10 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface { virtual int32_t setDisplayHistogramSetting( ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq); - virtual void registerHistogramInfo(IDLHistogram *info) { - if (info) - mHistogramInfo.reset(info); - else - mHistogramInfo.reset(); - - if (mHistogramInfo.get()) - mHistogramInfoRegistered = true; - else - mHistogramInfoRegistered = false; + virtual void registerHistogramInfo(const std::shared_ptr<IDLHistogram> &info) { + mHistogramInfo = info; } + bool isHistogramInfoRegistered() { return mHistogramInfo != nullptr; } int32_t setHistogramControl(hidl_histogram_control_t enabled); virtual int32_t setHistogramData(void *bin); @@ -185,7 +178,6 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface { HistoBlobs mOldHistoBlobs; std::shared_ptr<IDLHistogram> mHistogramInfo; - bool mHistogramInfoRegistered = false; private: const std::string GetPanelInfo(const std::string &sysfs_rel, char delim); |