display: Get panel type from framebuffer
Change-Id: I3b7cb78d7c6019482ae698b30d553ca782f5022b
diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp
index c28cf03..13d6274 100644
--- a/libhwcomposer/hwc.cpp
+++ b/libhwcomposer/hwc.cpp
@@ -24,6 +24,7 @@
#include <overlay.h>
#include <fb_priv.h>
+#include <mdp_version.h>
#include "hwc_utils.h"
#include "hwc_qbuf.h"
#include "hwc_video.h"
diff --git a/libhwcomposer/hwc_copybit.cpp b/libhwcomposer/hwc_copybit.cpp
index 7892632..99aecca 100644
--- a/libhwcomposer/hwc_copybit.cpp
+++ b/libhwcomposer/hwc_copybit.cpp
@@ -380,7 +380,7 @@
{
// XXX : TODO , currently returning false for MDP4 targets,
// This has to be modified after adding C2D support.
- if(ctx->hasOverlay)
+ if(ctx->mMDP.hasOverlay)
return false;
framebuffer_device_t* fbDev = ctx->mFbDev;
@@ -397,7 +397,7 @@
LINK_eglGetCurrentSurface == NULL )
return false;
- if(!ctx->hasOverlay) {
+ if(!ctx->mMDP.hasOverlay) {
if (numYUVBuffers)
return true;
}
diff --git a/libhwcomposer/hwc_uimirror.cpp b/libhwcomposer/hwc_uimirror.cpp
index 3bbe30e..d2b766d 100644
--- a/libhwcomposer/hwc_uimirror.cpp
+++ b/libhwcomposer/hwc_uimirror.cpp
@@ -61,7 +61,7 @@
sState = ovutils::OV_CLOSED;
sIsUiMirroringOn = false;
- if(!ctx->hasOverlay) {
+ if(!ctx->mMDP.hasOverlay) {
ALOGD_IF(HWC_UI_MIRROR, "%s, this hw doesnt support mirroring",
__FUNCTION__);
return false;
diff --git a/libhwcomposer/hwc_utils.cpp b/libhwcomposer/hwc_utils.cpp
index 0b62a98..dd890a9 100644
--- a/libhwcomposer/hwc_utils.cpp
+++ b/libhwcomposer/hwc_utils.cpp
@@ -40,8 +40,9 @@
openFramebufferDevice(ctx);
ctx->mOverlay = overlay::Overlay::getInstance();
ctx->qbuf = new QueuedBufferStore();
- ctx->mdpVersion = qdutils::MDPVersion::getInstance().getMDPVersion();
- ctx->hasOverlay = qdutils::MDPVersion::getInstance().hasOverlay();
+ ctx->mMDP.version = qdutils::MDPVersion::getInstance().getMDPVersion();
+ ctx->mMDP.hasOverlay = qdutils::MDPVersion::getInstance().hasOverlay();
+ ctx->mMDP.panel = qdutils::MDPVersion::getInstance().getPanelType();
ctx->mCopybitEngine = CopybitEngine::getInstance();
ctx->mExtDisplay = new ExternalDisplay(ctx);
MDPComp::init(ctx);
@@ -49,7 +50,7 @@
init_uevent_thread(ctx);
ALOGI("Initializing Qualcomm Hardware Composer");
- ALOGI("MDP version: %d", ctx->mdpVersion);
+ ALOGI("MDP version: %d", ctx->mMDP.version);
}
void closeContext(hwc_context_t *ctx)
diff --git a/libhwcomposer/hwc_utils.h b/libhwcomposer/hwc_utils.h
index a6c1446..9ce0815 100644
--- a/libhwcomposer/hwc_utils.h
+++ b/libhwcomposer/hwc_utils.h
@@ -37,6 +37,14 @@
namespace qhwc {
//fwrd decl
class QueuedBufferStore;
+class ExternalDisplay;
+class CopybitEngine;
+
+struct MDPInfo {
+ int version;
+ char panel;
+ bool hasOverlay;
+};
enum external_display_type {
EXT_TYPE_NONE,
@@ -57,8 +65,6 @@
};
-class ExternalDisplay;
-class CopybitEngine;
// -----------------------------------------------------------------------------
// Utility functions - implemented in hwc_utils.cpp
void dumpLayer(hwc_layer_t const* l);
@@ -102,8 +108,6 @@
struct hwc_context_t {
hwc_composer_device_t device;
int numHwLayers;
- int mdpVersion;
- bool hasOverlay;
int overlayInUse;
//Framebuffer device
@@ -121,6 +125,8 @@
// External display related information
qhwc::ExternalDisplay *mExtDisplay;
+ qhwc::MDPInfo mMDP;
+
};
#endif //HWC_UTILS_H
diff --git a/libhwcomposer/hwc_video.cpp b/libhwcomposer/hwc_video.cpp
index 190e31b..5b20ba4 100644
--- a/libhwcomposer/hwc_video.cpp
+++ b/libhwcomposer/hwc_video.cpp
@@ -35,7 +35,7 @@
//Cache stats, figure out the state, config overlay
bool VideoOverlay::prepare(hwc_context_t *ctx, hwc_layer_list_t *list) {
sIsModeOn = false;
- if(!ctx->hasOverlay) {
+ if(!ctx->mMDP.hasOverlay) {
ALOGD_IF(VIDEO_DEBUG,"%s, this hw doesnt support overlay", __FUNCTION__);
return false;
}