display: Get panel type from framebuffer
Change-Id: I3b7cb78d7c6019482ae698b30d553ca782f5022b
diff --git a/libqdutils/mdp_version.cpp b/libqdutils/mdp_version.cpp
index 25f1142..78ca52f 100644
--- a/libqdutils/mdp_version.cpp
+++ b/libqdutils/mdp_version.cpp
@@ -34,10 +34,11 @@
ANDROID_SINGLETON_STATIC_INSTANCE(qdutils::MDPVersion);
namespace qdutils {
-static int getMDPVersionFromFB()
+MDPVersion::MDPVersion()
{
int fb_fd = open("/dev/graphics/fb0", O_RDWR);
int mdp_version = MDP_V_UNKNOWN;
+ char panel_type = 0;
struct fb_fix_screeninfo fb_finfo;
if (ioctl(fb_fd, FBIOGET_FSCREENINFO, &fb_finfo) < 0) {
ALOGE("FBIOGET_FSCREENINFO failed");
@@ -61,18 +62,18 @@
} else {
mdp_version = MDP_V_UNKNOWN;
}
+ int len = strlen("msmfbXX_");
+ if (mdp_version == MDP_V3_0_3)
+ len++;
+ panel_type = fb_finfo.id[len];
+
}
close(fb_fd);
- return mdp_version;
-}
-
-MDPVersion::MDPVersion()
-{
- mMDPVersion = getMDPVersionFromFB();
+ mMDPVersion = mdp_version;
+ mHasOverlay = false;
if((mMDPVersion >= MDP_V4_0) || (mMDPVersion == MDP_V_UNKNOWN))
mHasOverlay = true;
- else
- mHasOverlay = false;
+ mPanelType = panel_type;
}
}; //namespace qdutils
diff --git a/libqdutils/mdp_version.h b/libqdutils/mdp_version.h
index 5ec0c67..9137cd4 100644
--- a/libqdutils/mdp_version.h
+++ b/libqdutils/mdp_version.h
@@ -52,15 +52,29 @@
MDSS_V5 = 500,
};
+#define MDDI_PANEL '1'
+#define EBI2_PANEL '2'
+#define LCDC_PANEL '3'
+#define EXT_MDDI_PANEL '4'
+#define TV_PANEL '5'
+#define DTV_PANEL '7'
+#define MIPI_VIDEO_PANEL '8'
+#define MIPI_CMD_PANEL '9'
+#define WRITEBACK_PANEL 'a'
+#define LVDS_PANEL 'b'
+
+
class MDPVersion : public Singleton <MDPVersion>
{
public:
MDPVersion();
~MDPVersion() { }
int getMDPVersion() {return mMDPVersion;}
+ char getPanelType() {return mPanelType;}
bool hasOverlay() {return mHasOverlay;}
private:
int mMDPVersion;
+ char mPanelType;
bool mHasOverlay;
};
}; //namespace qdutils