summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoenchen <joenchen@google.com>2023-06-08 23:54:39 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-06-08 23:54:39 +0000
commit50e835c81cf75074e915bafb47a53e2cf3e8f7f4 (patch)
tree64ad64007027e7ba4042bd6c5db170499d7e9bb1
parentc565811c4dced09010adc0ea4c824e63eb8b0380 (diff)
parent07f6ff10889e0604473133981035bb509c1045b1 (diff)
downloadgs101-50e835c81cf75074e915bafb47a53e2cf3e8f7f4.tar.gz
libhwc2.1: provide resetColorMappingInfo() am: 07f6ff1088
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/gs101/+/23517016 Change-Id: I83b0a5c3e7f90e985e73df29104114f544bdc18f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp12
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h2
2 files changed, 13 insertions, 1 deletions
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
index 0c34654..596fe2d 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
@@ -480,7 +480,7 @@ int32_t ExynosPrimaryDisplayModule::DisplaySceneInfo::setLayerDataMappingInfo(
uint32_t oldPlaneId = prev_layerDataMappingInfo.count(layer) != 0 &&
prev_layerDataMappingInfo[layer].dppIdx == index
? prev_layerDataMappingInfo[layer].planeId
- : UINT_MAX;
+ : LayerMappingInfo::kPlaneIdNone;
layerDataMappingInfo.insert(std::make_pair(layer, LayerMappingInfo{ index, oldPlaneId }));
return NO_ERROR;
@@ -736,6 +736,16 @@ int32_t ExynosPrimaryDisplayModule::updateColorConversionInfo()
return ret;
}
+int32_t ExynosPrimaryDisplayModule::resetColorMappingInfo(ExynosMPPSource* mppSrc) {
+ if (mDisplaySceneInfo.layerDataMappingInfo.count(mppSrc) == 0) {
+ return -EINVAL;
+ }
+
+ mDisplaySceneInfo.layerDataMappingInfo[mppSrc].planeId =
+ DisplaySceneInfo::LayerMappingInfo::kPlaneIdNone;
+
+ return NO_ERROR;
+}
int32_t ExynosPrimaryDisplayModule::updatePresentColorConversionInfo()
{
int ret = NO_ERROR;
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
index 6d78453..1b1cade 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
@@ -116,6 +116,7 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay {
HwcDimmingStage *outDimmingStage = nullptr) override;
virtual int deliverWinConfigData();
virtual int32_t updateColorConversionInfo();
+ virtual int32_t resetColorMappingInfo(ExynosMPPSource* mppSrc);
virtual int32_t updatePresentColorConversionInfo();
virtual bool checkRrCompensationEnabled() {
const DisplayType display = getDisplayTypeFromIndex(mIndex);
@@ -148,6 +149,7 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay {
uint32_t dppIdx;
// assigned drm plane id in last color setting update
uint32_t planeId;
+ static constexpr uint32_t kPlaneIdNone = std::numeric_limits<uint32_t>::max();
};
bool colorSettingChanged = false;
bool displaySettingDelivered = false;