diff options
author | HyunKyung Kim <hk310.kim@samsung.com> | 2021-01-12 15:51:33 +0900 |
---|---|---|
committer | Weizhung Ding <weizhungding@google.com> | 2021-03-18 00:32:46 +0800 |
commit | 6963c6cf4ff7ffff89ef0131fdc543fd5a9c7ce1 (patch) | |
tree | 7a36149cd0dc869ce1d2e5a62c7aaed11a6613bf /libhwc2.1 | |
parent | cf272c5335961b88a97cb8b379e3ad557b82c1f9 (diff) | |
download | gs101-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')
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp | 9 | ||||
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h | 2 |
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); |