libhwc2.1: Modify concept of display's type and ID
Bug: 162322019
Test: single/dual display boot to OS, and suspend/resume
Change-Id: Iebac9728b274eef0b3291fd4505edfe8ec51ca97
Signed-off-by: Seungchul Kim <sc377.kim@samsung.com>
Signed-off-by: HyunKyung Kim <hk310.kim@samsung.com>
diff --git a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp
index 50fe6f8..6c103a3 100644
--- a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp
+++ b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp
@@ -22,11 +22,12 @@
#endif
#include "ExynosHWCDebug.h"
+#include "ExynosHWCHelper.h"
#define SKIP_FRAME_COUNT 3
-ExynosExternalDisplayModule::ExynosExternalDisplayModule(uint32_t __unused type, ExynosDevice *device)
- : ExynosExternalDisplay(HWC_DISPLAY_EXTERNAL, device)
+ExynosExternalDisplayModule::ExynosExternalDisplayModule(uint32_t index, ExynosDevice *device)
+ : ExynosExternalDisplay(index, device)
{
}
diff --git a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.h b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.h
index 9e789a0..ff36c28 100644
--- a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.h
+++ b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.h
@@ -21,7 +21,7 @@
class ExynosExternalDisplayModule : public ExynosExternalDisplay {
public:
- ExynosExternalDisplayModule(uint32_t type, ExynosDevice *device);
+ ExynosExternalDisplayModule(uint32_t index, ExynosDevice *device);
~ExynosExternalDisplayModule();
virtual int32_t validateWinConfigData();
};
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
index ce44160..32f16de 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
@@ -38,8 +38,8 @@
return lm1.dppIdx == lm2.dppIdx && lm1.planeId == lm2.planeId;
}
-ExynosPrimaryDisplayModule::ExynosPrimaryDisplayModule(uint32_t __unused type, ExynosDevice *device)
- : ExynosPrimaryDisplay(HWC_DISPLAY_PRIMARY, device), mDisplayColorLoader(DISPLAY_COLOR_LIB)
+ExynosPrimaryDisplayModule::ExynosPrimaryDisplayModule(uint32_t index, ExynosDevice *device)
+ : ExynosPrimaryDisplay(index, device), mDisplayColorLoader(DISPLAY_COLOR_LIB)
{
#ifdef FORCE_GPU_COMPOSITION
exynosHWCControl.forceGpu = true;
@@ -106,10 +106,8 @@
void ExynosPrimaryDisplayModule::doPreProcessing() {
ExynosDisplay::doPreProcessing();
- ExynosDisplay *externalDisplay = mDevice->getDisplay(HWC_DISPLAY_EXTERNAL);
- ExynosDisplay *virtualDisplay = mDevice->getDisplay(HWC_DISPLAY_VIRTUAL);
- if ((externalDisplay->mPlugState) || (virtualDisplay->mPlugState)) {
+ if (mDevice->checkAdditionalConnection()) {
mDisplayControl.adjustDisplayFrame = true;
} else {
mDisplayControl.adjustDisplayFrame = false;
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
index 6ccff87..47191b9 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
@@ -27,7 +27,7 @@
class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay {
public:
- ExynosPrimaryDisplayModule(uint32_t type, ExynosDevice *device);
+ ExynosPrimaryDisplayModule(uint32_t index, ExynosDevice *device);
~ExynosPrimaryDisplayModule();
void usePreDefinedWindow(bool use);
virtual int32_t validateWinConfigData();
diff --git a/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.cpp b/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.cpp
index 9e77169..8cc99de 100644
--- a/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.cpp
+++ b/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.cpp
@@ -18,12 +18,11 @@
#include "ExynosVirtualDisplayModule.h"
-ExynosVirtualDisplayModule::ExynosVirtualDisplayModule(uint32_t __unused type, ExynosDevice *device)
- : ExynosVirtualDisplay(type, device)
+ExynosVirtualDisplayModule::ExynosVirtualDisplayModule(uint32_t index, ExynosDevice *device)
+ : ExynosVirtualDisplay(index, device)
{
mGLESFormat = HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M;
- mDisplayId = HWC_DISPLAY_VIRTUAL;
mDisplayName = android::String8("VirtualDisplay");
if (device == NULL) {
diff --git a/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.h b/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.h
index a71489d..398441b 100644
--- a/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.h
+++ b/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.h
@@ -21,7 +21,7 @@
class ExynosVirtualDisplayModule : public ExynosVirtualDisplay {
public:
- ExynosVirtualDisplayModule(uint32_t type, ExynosDevice *device);
+ ExynosVirtualDisplayModule(uint32_t displayId, ExynosDevice *device);
~ExynosVirtualDisplayModule();
/* getDisplayAttribute(..., config, attribute, outValue)