h/q/d: Add utility function for 8x16 and read RGB scalar capability
- Add utility function for 8x16
- Add internal function to identify if RGB doesn't
support scaling that is read from capabilities node.
- If UI layer needs scaling and RGB pipe doesn't
support scalar, request a VG pipe
- On 8x16, request DMA pipe for WFD
Change-Id: I94e8e0371bb10fcad53fddd2b7c45bc9b2594a4d
diff --git a/libqdutils/mdp_version.cpp b/libqdutils/mdp_version.cpp
index ed21b2c..9ee2d8d 100644
--- a/libqdutils/mdp_version.cpp
+++ b/libqdutils/mdp_version.cpp
@@ -45,7 +45,7 @@
MDSS_MDP_HW_REV_103 = 0x10030000, //8084
MDSS_MDP_HW_REV_104 = 0x10040000, //Next version
MDSS_MDP_HW_REV_105 = 0x10050000, //Next version
- MDSS_MDP_HW_REV_107 = 0x10070000, //Next version
+ MDSS_MDP_HW_REV_106 = 0x10060000, //8x16
MDSS_MDP_HW_REV_200 = 0x20000000, //8092
MDSS_MDP_HW_REV_206 = 0x20060000, //Future
};
@@ -53,6 +53,7 @@
enum mdp_rev {
MDSS_MDP_HW_REV_104 = 0x10040000, //Next version
MDSS_MDP_HW_REV_206 = 0x20060000, //Future
+ MDSS_MDP_HW_REV_107 = 0x10070000, //Next version
};
#endif
@@ -71,6 +72,7 @@
mLowBw = 0;
mHighBw = 0;
mSourceSplit = false;
+ mRGBHasNoScalar = false;
if(!updatePanelInfo()) {
ALOGE("Unable to read Primary Panel Information");
@@ -223,6 +225,10 @@
strlen("src_split"))) {
mSourceSplit = true;
}
+ else if(!strncmp(tokens[i], "non_scalar_rgb",
+ strlen("non_scalar_rgb"))) {
+ mRGBHasNoScalar = true;
+ }
}
}
}
@@ -295,6 +301,10 @@
return mSourceSplit;
}
+bool MDPVersion::isRGBScalarSupported() const {
+ return (!mRGBHasNoScalar);
+}
+
bool MDPVersion::is8x26() {
return (mMdpRev >= MDSS_MDP_HW_REV_101 and
mMdpRev < MDSS_MDP_HW_REV_102);
@@ -315,5 +325,10 @@
mMdpRev < MDSS_MDP_HW_REV_206);
}
+bool MDPVersion::is8x16() {
+ return (mMdpRev >= MDSS_MDP_HW_REV_106 and
+ mMdpRev < MDSS_MDP_HW_REV_107);
+}
+
}; //namespace qdutils