summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface
diff options
context:
space:
mode:
authorHyunKyung Kim <hk310.kim@samsung.com>2021-01-12 15:51:33 +0900
committerWeizhung Ding <weizhungding@google.com>2021-03-18 00:32:46 +0800
commit6963c6cf4ff7ffff89ef0131fdc543fd5a9c7ce1 (patch)
tree7a36149cd0dc869ce1d2e5a62c7aaed11a6613bf /libhwc2.1/libdisplayinterface
parentcf272c5335961b88a97cb8b379e3ad557b82c1f9 (diff)
downloadgs101-6963c6cf4ff7ffff89ef0131fdc543fd5a9c7ce1.tar.gz
libhwc2.1: Check if display interface is valid
This fatch removes display from mDisplays if display interface is not valid. Bug: 162322019 Test: single/dual display boot to OS, and suspend/resume Signed-off-by: HyunKyung Kim <hk310.kim@samsung.com> Change-Id: Ie494b07d755b5c0e815dd08e17ea3e9f1ab296e4
Diffstat (limited to 'libhwc2.1/libdisplayinterface')
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp9
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h2
2 files changed, 7 insertions, 4 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
index 211ebeb..27503da 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
@@ -66,12 +66,14 @@ void ExynosDisplayDrmInterfaceModule::parseBpcEnums(const DrmProperty& property)
}
}
-void ExynosDisplayDrmInterfaceModule::initDrmDevice(DrmDevice *drmDevice)
+int32_t ExynosDisplayDrmInterfaceModule::initDrmDevice(DrmDevice *drmDevice)
{
- ExynosDisplayDrmInterface::initDrmDevice(drmDevice);
+ int ret = NO_ERROR;
+ if ((ret = ExynosDisplayDrmInterface::initDrmDevice(drmDevice)) != NO_ERROR)
+ return ret;
if (isPrimary() == false)
- return;
+ return ret;
mOldDqeBlobs.init(drmDevice);
@@ -81,6 +83,7 @@ void ExynosDisplayDrmInterfaceModule::initDrmDevice(DrmDevice *drmDevice)
resizeOldDppBlobs(dppSize);
if (mDrmCrtc->force_bpc_property().id())
parseBpcEnums(mDrmCrtc->force_bpc_property());
+ return ret;
}
void ExynosDisplayDrmInterfaceModule::destroyOldBlobs(
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
index 2d050cd..39fb753 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
@@ -27,7 +27,7 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface {
public:
ExynosDisplayDrmInterfaceModule(ExynosDisplay *exynosDisplay);
virtual ~ExynosDisplayDrmInterfaceModule();
- virtual void initDrmDevice(DrmDevice *drmDevice);
+ virtual int32_t initDrmDevice(DrmDevice *drmDevice);
virtual int32_t setDisplayColorSetting(
ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq);