qdutils: mdpversion: Add device version checks
Add device version inline checks for hardware devices.
Also fixes the issue of 8084 being treated as 8974v2
owing to the expanded range.
Change-Id: Iaeefb505e14e022b6e542daa8b84a87a22e7f69a
diff --git a/libqdutils/mdp_version.h b/libqdutils/mdp_version.h
index fb7920e..60a2985 100644
--- a/libqdutils/mdp_version.h
+++ b/libqdutils/mdp_version.h
@@ -57,10 +57,20 @@
MDSS_V5 = 500,
};
+// chip variants have same major number and minor numbers usually vary
+// for e.g., MDSS_MDP_HW_REV_101 is 0x10010000
+// 1001 - major number
+// 0000 - minor number
+// 8x26 v1 minor number is 0000
+// v2 minor number is 0001 etc..
enum mdp_rev {
MDSS_MDP_HW_REV_100 = 0x10000000, //8974 v1
MDSS_MDP_HW_REV_101 = 0x10010000, //8x26
MDSS_MDP_HW_REV_102 = 0x10020000, //8974 v2
+ 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_200 = 0x20000000, //8092
MDSS_MDP_HW_REV_206 = 0x20060000, //Future
};
@@ -108,13 +118,28 @@
bool supportsDecimation();
uint32_t getMaxMDPDownscale();
bool supportsBWC();
- bool is8x26();
- bool is8x74v2();
- bool is8x92();
int getLeftSplit() { return mSplit.left(); }
int getRightSplit() { return mSplit.right(); }
unsigned long getLowBw() { return mLowBw; }
unsigned long getHighBw() { return mHighBw; }
+
+ bool is8x26() {
+ return (mMdpRev >= MDSS_MDP_HW_REV_101 and
+ mMdpRev < MDSS_MDP_HW_REV_102);
+ }
+ bool is8x74v2() {
+ return (mMdpRev >= MDSS_MDP_HW_REV_102 and
+ mMdpRev < MDSS_MDP_HW_REV_103);
+ }
+ bool is8084() {
+ return (mMdpRev >= MDSS_MDP_HW_REV_103 and
+ mMdpRev < MDSS_MDP_HW_REV_104);
+ }
+ bool is8092() {
+ return (mMdpRev >= MDSS_MDP_HW_REV_200 and
+ mMdpRev < MDSS_MDP_HW_REV_206);
+ }
+
private:
bool updateSysFsInfo();
bool updatePanelInfo();