hwc: Add support for SourceSplit
Add support for SourceSplit. The mixers are abstracted from hwc.
There would be no translations to mixer understood destinations.
1) If a layer's crop and position are < 2048, only 1 pipe can be used
irrespective of position.
2) Else 2 pipes can be used with the layer equally split, without
regard to position.
Change-Id: I501a53838d147887c1e2299366663e05320d5096
diff --git a/libqdutils/mdp_version.cpp b/libqdutils/mdp_version.cpp
index c341dfa..e43468e 100644
--- a/libqdutils/mdp_version.cpp
+++ b/libqdutils/mdp_version.cpp
@@ -70,6 +70,7 @@
mPanelType = NO_PANEL;
mLowBw = 0;
mHighBw = 0;
+ mSourceSplit = false;
if(!updatePanelInfo()) {
ALOGE("Unable to read Primary Panel Information");
@@ -218,6 +219,9 @@
strlen("tile_format"))) {
if(enableMacroTile)
mMacroTileEnabled = true;
+ } else if(!strncmp(tokens[i], "src_split",
+ strlen("src_split"))) {
+ mSourceSplit = true;
}
}
}
@@ -287,6 +291,10 @@
return mMacroTileEnabled;
}
+bool MDPVersion::isSrcSplit() const {
+ return mSourceSplit;
+}
+
bool MDPVersion::is8x26() {
return (mMdpRev >= MDSS_MDP_HW_REV_101 and
mMdpRev < MDSS_MDP_HW_REV_102);
diff --git a/libqdutils/mdp_version.h b/libqdutils/mdp_version.h
index 853b9f5..b98a6be 100644
--- a/libqdutils/mdp_version.h
+++ b/libqdutils/mdp_version.h
@@ -113,6 +113,7 @@
int getRightSplit() { return mSplit.right(); }
unsigned long getLowBw() { return mLowBw; }
unsigned long getHighBw() { return mHighBw; }
+ bool isSrcSplit() const;
bool is8x26();
bool is8x74v2();
bool is8084();
@@ -139,6 +140,7 @@
Split mSplit;
unsigned long mLowBw; //kbps
unsigned long mHighBw; //kbps
+ bool mSourceSplit;
};
}; //namespace qdutils
#endif //INCLUDE_LIBQCOMUTILS_MDPVER