diff options
-rw-r--r-- | histogram/histogram.h | 10 | ||||
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp | 7 | ||||
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h | 2 |
3 files changed, 12 insertions, 7 deletions
diff --git a/histogram/histogram.h b/histogram/histogram.h index ff981bf..a7b41ce 100644 --- a/histogram/histogram.h +++ b/histogram/histogram.h @@ -28,8 +28,14 @@ class IDLHistogram : public HistogramInfo { public: IDLHistogram() : HistogramInfo(HistogramType::HISTOGRAM_HIDL) {} virtual ~IDLHistogram() {} - virtual void setHistogramPos(HistogramPos pos) { mHistogramPos = pos; } - HistogramPos getHistogramPos() { return mHistogramPos; } + virtual void setHistogramPos(HistogramPos pos) { + std::unique_lock<std::mutex> lk(mSetHistInfoMutex); + mHistogramPos = pos; + } + HistogramPos getHistogramPos() { + std::unique_lock<std::mutex> lk(mSetHistInfoMutex); + return mHistogramPos; + } private: HistogramPos mHistogramPos = HistogramPos::POST; diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp index 6e9cd7b..817377a 100644 --- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp +++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp @@ -196,8 +196,7 @@ int32_t ExynosDisplayDrmInterfaceModule::setHistoPosProperty( int32_t ExynosDisplayDrmInterfaceModule::setDisplayHistogramSetting( ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq) { - if ((mHistogramInfoRegistered == false) || (isPrimary() == false)) - return NO_ERROR; + if ((isHistogramInfoRegistered() == false) || (isPrimary() == false)) return NO_ERROR; int32_t ret = gs101::ExynosDisplayDrmInterfaceModule::setDisplayHistogramSetting( @@ -210,9 +209,9 @@ int32_t ExynosDisplayDrmInterfaceModule::setDisplayHistogramSetting( } void ExynosDisplayDrmInterfaceModule::registerHistogramInfo( - IDLHistogram *info) { + const std::shared_ptr<IDLHistogram> &info) { gs101::ExynosDisplayDrmInterfaceModule::registerHistogramInfo(info); - mHistogramInfo.reset(info); + mHistogramInfo = info; } //////////////////////////////////////////////////// ExynosPrimaryDisplayDrmInterfaceModule ////////////////////////////////////////////////////////////////// diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h index a341f39..5060c8c 100644 --- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h +++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h @@ -40,7 +40,7 @@ class ExynosDisplayDrmInterfaceModule : public gs101::ExynosDisplayDrmInterfaceM /* For Histogram */ virtual int32_t setDisplayHistogramSetting( ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq) override; - virtual void registerHistogramInfo(IDLHistogram *info) override; + virtual void registerHistogramInfo(const std::shared_ptr<IDLHistogram> &info) override; private: int32_t createCgcDMAFromIDqe(const IDisplayColorGS101::IDqe::CgcData &cgcData); |