summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoen Chen <joenchen@google.com>2023-03-21 05:54:12 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2023-03-21 05:54:12 +0000
commit8fb86c4886735839181951cc5875a0d4972636da (patch)
treea76a27b32a6033008d9eadfaa6f4043c0bcd7965
parent3cbddb096bff57077e48c9aff9cf750f2d723aeb (diff)
parent49dec5e3831532d6d23079dc741224425470091f (diff)
downloadzuma-8fb86c4886735839181951cc5875a0d4972636da.tar.gz
Merge "libhwc2.1: add WCG constraints into TDM" into udc-d1-dev
-rw-r--r--libhwc2.1/ExynosHWCModule.h119
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp17
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h1
-rw-r--r--libhwc2.1/libresource/ExynosResourceManagerModule.cpp41
-rw-r--r--libhwc2.1/libresource/ExynosResourceManagerModule.h6
5 files changed, 126 insertions, 58 deletions
diff --git a/libhwc2.1/ExynosHWCModule.h b/libhwc2.1/ExynosHWCModule.h
index 0f0280a..c020a44 100644
--- a/libhwc2.1/ExynosHWCModule.h
+++ b/libhwc2.1/ExynosHWCModule.h
@@ -48,6 +48,12 @@ typedef enum AXIPortId {
AXI_PORT_CNT,
} AXIPortId_t;
+typedef enum ConstraintRev {
+ CONSTRAINT_NONE = 0, // don't care
+ CONSTRAINT_A0,
+ CONSTRAINT_B0
+} ConstraintRev_t;
+
static const dpp_channel_map_t idma_channel_map[] = {
/* GF physical index is switched to change assign order */
/* DECON_IDMA is not used */
@@ -132,10 +138,15 @@ class HWResourceIndexes {
tdm_attr_t attr;
DPUblockId_t DPUBlockNo;
int displayId;
+ ConstraintRev_t constraintRev;
public:
- HWResourceIndexes(tdm_attr_t _attr, DPUblockId_t _DPUBlockNo, int _displayId)
- : attr(_attr), DPUBlockNo(_DPUBlockNo), displayId(_displayId) {}
+ HWResourceIndexes(tdm_attr_t _attr, DPUblockId_t _DPUBlockNo, int _displayId,
+ ConstraintRev_t _constraintRev)
+ : attr(_attr),
+ DPUBlockNo(_DPUBlockNo),
+ displayId(_displayId),
+ constraintRev(_constraintRev) {}
bool operator<(const HWResourceIndexes& rhs) const {
if (attr != rhs.attr) return attr < rhs.attr;
@@ -143,6 +154,8 @@ class HWResourceIndexes {
if (displayId != rhs.displayId) return displayId < rhs.displayId;
+ if (constraintRev != CONSTRAINT_NONE) return constraintRev < rhs.constraintRev;
+
return false;
}
};
@@ -157,47 +170,67 @@ typedef struct HWResourceAmounts {
* Primary amount = total - others */
const std::map<HWResourceIndexes, HWResourceAmounts_t> HWResourceTables = {
- {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF0, HWC_DISPLAY_PRIMARY), {80, 80}},
- {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF0, HWC_DISPLAY_EXTERNAL), {0, 80}},
- {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF0, HWC_DISPLAY_VIRTUAL), {0, 80}},
- {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF1, HWC_DISPLAY_PRIMARY), {0, 80}},
- {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF1, HWC_DISPLAY_EXTERNAL), {80, 80}},
- {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF1, HWC_DISPLAY_VIRTUAL), {80, 80}},
-
- {HWResourceIndexes(TDM_ATTR_SCALE, DPUF0, HWC_DISPLAY_PRIMARY), {2, 2}},
- {HWResourceIndexes(TDM_ATTR_SCALE, DPUF0, HWC_DISPLAY_EXTERNAL), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_SCALE, DPUF0, HWC_DISPLAY_VIRTUAL), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_SCALE, DPUF1, HWC_DISPLAY_PRIMARY), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_SCALE, DPUF1, HWC_DISPLAY_EXTERNAL), {2, 2}},
- {HWResourceIndexes(TDM_ATTR_SCALE, DPUF1, HWC_DISPLAY_VIRTUAL), {2, 2}},
-
- {HWResourceIndexes(TDM_ATTR_SBWC, DPUF0, HWC_DISPLAY_PRIMARY), {2, 2}},
- {HWResourceIndexes(TDM_ATTR_SBWC, DPUF0, HWC_DISPLAY_EXTERNAL), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_SBWC, DPUF0, HWC_DISPLAY_VIRTUAL), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_SBWC, DPUF1, HWC_DISPLAY_PRIMARY), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_SBWC, DPUF1, HWC_DISPLAY_EXTERNAL), {2, 2}},
- {HWResourceIndexes(TDM_ATTR_SBWC, DPUF1, HWC_DISPLAY_VIRTUAL), {2, 2}},
-
- {HWResourceIndexes(TDM_ATTR_AFBC, DPUF0, HWC_DISPLAY_PRIMARY), {4, 4}},
- {HWResourceIndexes(TDM_ATTR_AFBC, DPUF0, HWC_DISPLAY_EXTERNAL), {0, 4}},
- {HWResourceIndexes(TDM_ATTR_AFBC, DPUF0, HWC_DISPLAY_VIRTUAL), {0, 4}},
- {HWResourceIndexes(TDM_ATTR_AFBC, DPUF1, HWC_DISPLAY_PRIMARY), {0, 4}},
- {HWResourceIndexes(TDM_ATTR_AFBC, DPUF1, HWC_DISPLAY_EXTERNAL), {4, 4}},
- {HWResourceIndexes(TDM_ATTR_AFBC, DPUF1, HWC_DISPLAY_VIRTUAL), {4, 4}},
-
- {HWResourceIndexes(TDM_ATTR_ITP, DPUF0, HWC_DISPLAY_PRIMARY), {4, 4}},
- {HWResourceIndexes(TDM_ATTR_ITP, DPUF0, HWC_DISPLAY_EXTERNAL), {0, 4}},
- {HWResourceIndexes(TDM_ATTR_ITP, DPUF0, HWC_DISPLAY_VIRTUAL), {0, 4}},
- {HWResourceIndexes(TDM_ATTR_ITP, DPUF1, HWC_DISPLAY_PRIMARY), {0, 4}},
- {HWResourceIndexes(TDM_ATTR_ITP, DPUF1, HWC_DISPLAY_EXTERNAL), {4, 4}},
- {HWResourceIndexes(TDM_ATTR_ITP, DPUF1, HWC_DISPLAY_VIRTUAL), {4, 4}},
-
- {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF0, HWC_DISPLAY_PRIMARY), {2, 2}},
- {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF0, HWC_DISPLAY_EXTERNAL), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF0, HWC_DISPLAY_VIRTUAL), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF1, HWC_DISPLAY_PRIMARY), {0, 2}},
- {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF1, HWC_DISPLAY_EXTERNAL), {2, 2}},
- {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF1, HWC_DISPLAY_VIRTUAL), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF0, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE),
+ {80, 80}},
+ {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF0, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE),
+ {0, 80}},
+ {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF0, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE),
+ {0, 80}},
+ {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF1, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE),
+ {0, 80}},
+ {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF1, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE),
+ {80, 80}},
+ {HWResourceIndexes(TDM_ATTR_SRAM_AMOUNT, DPUF1, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE),
+ {80, 80}},
+
+ {HWResourceIndexes(TDM_ATTR_SCALE, DPUF0, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_SCALE, DPUF0, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_SCALE, DPUF0, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_SCALE, DPUF1, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_SCALE, DPUF1, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_SCALE, DPUF1, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {2, 2}},
+
+ {HWResourceIndexes(TDM_ATTR_SBWC, DPUF0, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_SBWC, DPUF0, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_SBWC, DPUF0, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_SBWC, DPUF1, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_SBWC, DPUF1, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_SBWC, DPUF1, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {2, 2}},
+
+ {HWResourceIndexes(TDM_ATTR_AFBC, DPUF0, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {4, 4}},
+ {HWResourceIndexes(TDM_ATTR_AFBC, DPUF0, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {0, 4}},
+ {HWResourceIndexes(TDM_ATTR_AFBC, DPUF0, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {0, 4}},
+ {HWResourceIndexes(TDM_ATTR_AFBC, DPUF1, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {0, 4}},
+ {HWResourceIndexes(TDM_ATTR_AFBC, DPUF1, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {4, 4}},
+ {HWResourceIndexes(TDM_ATTR_AFBC, DPUF1, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {4, 4}},
+
+ {HWResourceIndexes(TDM_ATTR_ITP, DPUF0, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {4, 4}},
+ {HWResourceIndexes(TDM_ATTR_ITP, DPUF0, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {0, 4}},
+ {HWResourceIndexes(TDM_ATTR_ITP, DPUF0, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {0, 4}},
+ {HWResourceIndexes(TDM_ATTR_ITP, DPUF1, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {0, 4}},
+ {HWResourceIndexes(TDM_ATTR_ITP, DPUF1, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {4, 4}},
+ {HWResourceIndexes(TDM_ATTR_ITP, DPUF1, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {4, 4}},
+
+ {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF0, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF0, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF0, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF1, HWC_DISPLAY_PRIMARY, CONSTRAINT_NONE), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF1, HWC_DISPLAY_EXTERNAL, CONSTRAINT_NONE), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_ROT_90, DPUF1, HWC_DISPLAY_VIRTUAL, CONSTRAINT_NONE), {2, 2}},
+
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF0, HWC_DISPLAY_PRIMARY, CONSTRAINT_A0), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF0, HWC_DISPLAY_EXTERNAL, CONSTRAINT_A0), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF0, HWC_DISPLAY_VIRTUAL, CONSTRAINT_A0), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF1, HWC_DISPLAY_PRIMARY, CONSTRAINT_A0), {2, 2}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF1, HWC_DISPLAY_EXTERNAL, CONSTRAINT_A0), {0, 2}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF1, HWC_DISPLAY_VIRTUAL, CONSTRAINT_A0), {0, 2}},
+
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF0, HWC_DISPLAY_PRIMARY, CONSTRAINT_B0), {0, 4}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF0, HWC_DISPLAY_EXTERNAL, CONSTRAINT_B0), {4, 4}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF0, HWC_DISPLAY_VIRTUAL, CONSTRAINT_B0), {4, 4}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF1, HWC_DISPLAY_PRIMARY, CONSTRAINT_B0), {4, 4}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF1, HWC_DISPLAY_EXTERNAL, CONSTRAINT_B0), {0, 4}},
+ {HWResourceIndexes(TDM_ATTR_WCG, DPUF1, HWC_DISPLAY_VIRTUAL, CONSTRAINT_B0), {0, 4}},
};
typedef enum lbWidthIndex {
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
index 587b94c..b77aa46 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
@@ -222,3 +222,20 @@ int32_t ExynosPrimaryDisplayModule::OperationRateManager::updateOperationRateLoc
mDisplayLastDbv, mDisplayNsMinDbv);
return ret;
}
+
+void ExynosPrimaryDisplayModule::checkPreblendingRequirement() {
+ String8 log;
+ int count = 0;
+ for (size_t i = 0; i < mLayers.size(); ++i) {
+ auto& dpp = getDppForLayer(mLayers[i]);
+ mLayers[i]->mNeedPreblending =
+ dpp.EotfLut().enable | dpp.Gm().enable | dpp.Dtm().enable | dpp.OetfLut().enable;
+ count += mLayers[i]->mNeedPreblending;
+ if (hwcCheckDebugMessages(eDebugTDM)) {
+ log.appendFormat(" i=%zu,pb(%d-%d,%d,%d,%d)", i, mLayers[i]->mNeedPreblending,
+ dpp.EotfLut().enable, dpp.Gm().enable, dpp.Dtm().enable,
+ dpp.OetfLut().enable);
+ }
+ }
+ DISPLAY_LOGD(eDebugTDM, "%s: disp(%d),cnt=%d%s", __func__, mDisplayId, count, log.string());
+}
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
index 717964f..faf6d8f 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
@@ -29,6 +29,7 @@ class ExynosPrimaryDisplayModule : public gs201::ExynosPrimaryDisplayModule {
const std::string& displayName);
~ExynosPrimaryDisplayModule();
virtual int32_t validateWinConfigData();
+ void checkPreblendingRequirement() override;
protected:
class OperationRateManager
diff --git a/libhwc2.1/libresource/ExynosResourceManagerModule.cpp b/libhwc2.1/libresource/ExynosResourceManagerModule.cpp
index 9f9bba3..5cc11c7 100644
--- a/libhwc2.1/libresource/ExynosResourceManagerModule.cpp
+++ b/libhwc2.1/libresource/ExynosResourceManagerModule.cpp
@@ -16,7 +16,10 @@
#include "ExynosResourceManagerModule.h"
+#include <cutils/properties.h>
+
#include <list>
+#include <utility>
#include "ExynosLayer.h"
@@ -37,6 +40,12 @@ ExynosResourceManagerModule::ExynosResourceManagerModule(ExynosDevice *device)
{
// HW Resource Table for TDM based allocation
mHWResourceTables = &HWResourceTables;
+
+ char value[PROPERTY_VALUE_MAX];
+ property_get("ro.boot.hw.soc.rev", value, "2");
+ const int socRev = atoi(value);
+ mConstraintRev = socRev < 2 ? CONSTRAINT_A0 : CONSTRAINT_B0;
+ ALOGD("%s(): ro.boot.hw.soc.rev=%s ConstraintRev=%d", __func__, value, mConstraintRev);
// TODO (b/266048745): Revert once G2D HDR code for zuma is merged
mM2mMPPs.clear();
}
@@ -154,13 +163,14 @@ uint32_t ExynosResourceManagerModule::setDisplaysTDMInfo()
ExynosDisplay *primaryDisplay = getDisplay(getDisplayId(HWC_DISPLAY_PRIMARY, 0));
for (auto attr = HWAttrs.begin(); attr != HWAttrs.end(); attr++) {
for (auto blockId = DPUBlocks.begin(); blockId != DPUBlocks.end(); blockId++) {
- if (mHWResourceTables->find(
- HWResourceIndexes(attr->first, blockId->first, primaryDisplay->mType)) !=
+ if (mHWResourceTables->find(HWResourceIndexes(attr->first, blockId->first,
+ primaryDisplay->mType, mConstraintRev)) !=
mHWResourceTables->end()) {
- uint32_t total = mHWResourceTables
- ->at(HWResourceIndexes(attr->first, blockId->first,
- primaryDisplay->mType))
- .totalAmount;
+ uint32_t total =
+ mHWResourceTables
+ ->at(HWResourceIndexes(attr->first, blockId->first,
+ primaryDisplay->mType, mConstraintRev))
+ .totalAmount;
if (addedDisplay != nullptr) {
total = total -
@@ -176,6 +186,9 @@ uint32_t ExynosResourceManagerModule::setDisplaysTDMInfo()
primaryDisplay->mDisplayTDMInfo[blockId->first].initTDMInfo(amount, attr->first);
HDEBUGLOGD(eDebugTDM, "Primary display (block : %d) : %s amount is updated to %d",
blockId->first, attr->second.string(), amount.totalAmount);
+ } else {
+ ALOGW("Primary display (block : %d) : cannot find resource for %s", blockId->first,
+ attr->second.string());
}
}
}
@@ -209,20 +222,24 @@ uint32_t ExynosResourceManagerModule::initDisplaysTDMInfo()
for (auto &display : mDisplays) {
for (auto attr = HWAttrs.begin(); attr != HWAttrs.end(); attr++) {
for (auto blockId = DPUBlocks.begin(); blockId != DPUBlocks.end(); blockId++) {
- if (mHWResourceTables->find(
- HWResourceIndexes(attr->first, blockId->first, display->mType)) !=
+ if (mHWResourceTables->find(HWResourceIndexes(attr->first, blockId->first,
+ display->mType, mConstraintRev)) !=
mHWResourceTables->end()) {
DisplayTDMInfo::ResourceAmount_t amount = {
0,
};
- amount.totalAmount = mHWResourceTables
- ->at(HWResourceIndexes(attr->first, blockId->first,
- display->mType))
- .maxAssignedAmount;
+ amount.totalAmount =
+ mHWResourceTables
+ ->at(HWResourceIndexes(attr->first, blockId->first,
+ display->mType, mConstraintRev))
+ .maxAssignedAmount;
display->mDisplayTDMInfo[blockId->first].initTDMInfo(amount, attr->first);
HDEBUGLOGD(eDebugTDM, "%s, [attr:%d] display : %d, block : %d, amount : %d",
__func__, attr->first, display->mType, blockId->first,
amount.totalAmount);
+ } else {
+ ALOGW("%s, [attr:%d] display : %d, block : %d no resource", __func__,
+ attr->first, display->mType, blockId->first);
}
}
}
diff --git a/libhwc2.1/libresource/ExynosResourceManagerModule.h b/libhwc2.1/libresource/ExynosResourceManagerModule.h
index 4197005..29bcc80 100644
--- a/libhwc2.1/libresource/ExynosResourceManagerModule.h
+++ b/libhwc2.1/libresource/ExynosResourceManagerModule.h
@@ -26,7 +26,6 @@ class ExynosResourceManagerModule : public gs201::ExynosResourceManagerModule {
ExynosResourceManagerModule(ExynosDevice *device);
~ExynosResourceManagerModule();
- public:
/* TDM (Time-Division Multiplexing) based Resource Management */
virtual bool isHWResourceAvailable(ExynosDisplay *display, ExynosMPP *currentMPP,
ExynosMPPSource *mppSrc);
@@ -43,9 +42,10 @@ class ExynosResourceManagerModule : public gs201::ExynosResourceManagerModule {
std::map<tdm_attr_t, uint32_t> &amounts);
bool checkTDMResource(ExynosDisplay *display, ExynosMPP *currentMPP,
ExynosMPPSource *mppSrc);
-
- public:
const std::map<HWResourceIndexes, HWResourceAmounts_t> *mHWResourceTables = nullptr;
+
+ private:
+ ConstraintRev_t mConstraintRev;
};
} // namespace zuma