summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-12-07 00:22:09 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-12-07 00:22:09 +0000
commit12fb6fba570634dc51ca31cbdc39a3ce389246c9 (patch)
tree022af22e02febe37e0a6f7e0a9905aed6bb5f3e5 /libhwc2.1/libdisplayinterface
parentbeeee661c649719ba4f7a24aea0ac7bc3e1c2f7f (diff)
parent48a8ee8241cfc8b3f8c9a8b963e0916912d0bc73 (diff)
downloadgs101-android13-qpr2-s10-release.tar.gz
Change-Id: I1052b54b025e149a5464df6098e319538056f16a
Diffstat (limited to 'libhwc2.1/libdisplayinterface')
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp6
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h14
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);