diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-12 02:17:33 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-12 02:17:33 +0000 |
commit | 045061ecc844ce3a3d347bd0e7b81d5030bacee0 (patch) | |
tree | 7435383658c892a9747d8420756d8ba4d89d006a | |
parent | d208b96cd1879f0c0c54195cf8703a679c2d91c7 (diff) | |
parent | 2d80393b53fd5c408fef0c1f38a3c55706415da7 (diff) | |
download | common-045061ecc844ce3a3d347bd0e7b81d5030bacee0.tar.gz |
Snap for 11206181 from 2d80393b53fd5c408fef0c1f38a3c55706415da7 to 24Q1-release
Change-Id: Id2435bc41a09d420b7c85d2616577ce091792ed5
-rw-r--r-- | libhwc2.1/ExynosHWCDebug.cpp | 2 | ||||
-rw-r--r-- | libhwc2.1/ExynosHWCDebug.h | 2 | ||||
-rw-r--r-- | libhwc2.1/libdevice/ExynosDisplay.cpp | 15 | ||||
-rw-r--r-- | libhwc2.1/libdevice/ExynosDisplay.h | 4 | ||||
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp | 6 | ||||
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h | 6 |
6 files changed, 25 insertions, 10 deletions
diff --git a/libhwc2.1/ExynosHWCDebug.cpp b/libhwc2.1/ExynosHWCDebug.cpp index d43f76d..6f2b806 100644 --- a/libhwc2.1/ExynosHWCDebug.cpp +++ b/libhwc2.1/ExynosHWCDebug.cpp @@ -18,7 +18,7 @@ #include <sync/sync.h> #include "exynos_sync.h" -int32_t saveErrorLog(const String8 &errString, ExynosDisplay *display) { +int32_t saveErrorLog(const String8& errString, const ExynosDisplay* display) { if (display == nullptr) return -1; int32_t ret = NO_ERROR; diff --git a/libhwc2.1/ExynosHWCDebug.h b/libhwc2.1/ExynosHWCDebug.h index bd62a2e..50826f9 100644 --- a/libhwc2.1/ExynosHWCDebug.h +++ b/libhwc2.1/ExynosHWCDebug.h @@ -67,7 +67,7 @@ inline int hwcCheckFenceDebug(ExynosDisplay *display, uint32_t fence_type, uint3 return fence; } -int32_t saveErrorLog(const android::String8 &errString, ExynosDisplay *display = NULL); +int32_t saveErrorLog(const android::String8& errString, const ExynosDisplay* display = NULL); #if defined(DISABLE_HWC_DEBUG) #define ALOGD_AND_ATRACE_NAME(debugFlag, fmt, ...) diff --git a/libhwc2.1/libdevice/ExynosDisplay.cpp b/libhwc2.1/libdevice/ExynosDisplay.cpp index 6fb4a3c..2f77bb9 100644 --- a/libhwc2.1/libdevice/ExynosDisplay.cpp +++ b/libhwc2.1/libdevice/ExynosDisplay.cpp @@ -6616,3 +6616,18 @@ void ExynosDisplay::storePrevValidateCompositionType() { } mClientCompositionInfo.mPrevHasCompositionLayer = mClientCompositionInfo.mHasCompositionLayer; } + +displaycolor::DisplayType ExynosDisplay::getDcDisplayType() const { + switch (mType) { + case HWC_DISPLAY_PRIMARY: + return mIndex == 0 ? displaycolor::DisplayType::DISPLAY_PRIMARY + : displaycolor::DisplayType::DISPLAY_SECONDARY; + case HWC_DISPLAY_EXTERNAL: + return displaycolor::DisplayType::DISPLAY_EXTERNAL; + case HWC_DISPLAY_VIRTUAL: + default: + DISPLAY_LOGE("%s: Unsupported display type(%d)", __func__, mType); + assert(false); + return displaycolor::DisplayType::DISPLAY_PRIMARY; + } +} diff --git a/libhwc2.1/libdevice/ExynosDisplay.h b/libhwc2.1/libdevice/ExynosDisplay.h index 7a951cc..cdb62d6 100644 --- a/libhwc2.1/libdevice/ExynosDisplay.h +++ b/libhwc2.1/libdevice/ExynosDisplay.h @@ -1320,6 +1320,8 @@ class ExynosDisplay { virtual void onVsync(int64_t __unused timestamp) { return; }; + displaycolor::DisplayType getDcDisplayType() const; + protected: virtual bool getHDRException(ExynosLayer *layer); virtual int32_t getActiveConfigInternal(hwc2_config_t* outConfig); @@ -1648,7 +1650,7 @@ class ExynosDisplay { int32_t mLastFileIndex; FILE* mFile; }; - RotatingLogFileWriter mErrLogFileWriter; + mutable RotatingLogFileWriter mErrLogFileWriter; RotatingLogFileWriter mDebugDumpFileWriter; RotatingLogFileWriter mFenceFileWriter; diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp index ba2cb5c..d15c4fe 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp @@ -132,10 +132,12 @@ ExynosPrimaryDisplay::ExynosPrimaryDisplay(uint32_t index, ExynosDevice *device, mDbvThresholdForBlockingZone); } - DisplayType displayType = getDisplayTypeFromIndex(mIndex); + DisplayType displayType = getDcDisplayType(); std::string displayTypeIdentifier; if (displayType == DisplayType::DISPLAY_PRIMARY) { displayTypeIdentifier = "primarydisplay"; + } else if (displayType == DisplayType::DISPLAY_EXTERNAL) { + displayTypeIdentifier = "externaldisplay"; } #ifdef USES_IDISPLAY_INTF_SEC else if (displayType == DisplayType::DISPLAY_SECONDARY) { @@ -189,7 +191,7 @@ ExynosPrimaryDisplay::ExynosPrimaryDisplay(uint32_t index, ExynosDevice *device, char value[PROPERTY_VALUE_MAX]; const char *earlyWakeupNodeBase = early_wakeup_node_0_base; - if (getDisplayTypeFromIndex(mIndex) == DisplayType::DISPLAY_SECONDARY && + if (getDcDisplayType() == DisplayType::DISPLAY_SECONDARY && property_get("vendor.display.secondary_early_wakeup_node", value, "") > 0) { earlyWakeupNodeBase = value; } diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h index 0be4c60..2d5b657 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h @@ -93,16 +93,12 @@ class ExynosPrimaryDisplay : public ExynosDisplay { virtual bool getHDRException(ExynosLayer* __unused layer); virtual int32_t setActiveConfigInternal(hwc2_config_t config, bool force) override; virtual int32_t getActiveConfigInternal(hwc2_config_t* outConfig) override; - DisplayType getDisplayTypeFromIndex(uint32_t index) const { - return (index >= DisplayType::DISPLAY_MAX) ? DisplayType::DISPLAY_PRIMARY - : DisplayType(mIndex); - }; public: // Prepare multi resolution ResolutionInfo mResolutionInfo; std::string getPanelSysfsPath() const override { - return getPanelSysfsPath(getDisplayTypeFromIndex(mIndex)); + return getPanelSysfsPath(getDcDisplayType()); } std::string getPanelSysfsPath(const displaycolor::DisplayType& type) const; |