summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-12-28 00:07:24 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-12-28 00:07:24 +0000
commit4b436ee00d71dcdd8ddeb1ad20161d0759ab8c1a (patch)
tree37abf45d4a91937053929df5b1198b31b06817a0
parent049ecca90d598e5913a50363f830e1802752ca5a (diff)
parentb1aae324ee115b741d53807ae9df8a4b224f4370 (diff)
downloadcommon-android12L-d2-s2-release.tar.gz
Change-Id: I5bf2c053a785c676ba574b6db0218e2f58581221
-rw-r--r--libhwc2.1/libdevice/ExynosDisplay.cpp15
-rw-r--r--libhwc2.1/libdevice/ExynosDisplay.h2
-rw-r--r--libhwc2.1/libdrmresource/drm/drmeventlistener.cpp4
-rw-r--r--libhwc2.1/libdrmresource/drm/vsyncworker.cpp1
-rw-r--r--libhwc2.1/libdrmresource/include/drmeventlistener.h3
-rw-r--r--libhwc2.1/libdrmresource/utils/worker.cpp1
6 files changed, 20 insertions, 6 deletions
diff --git a/libhwc2.1/libdevice/ExynosDisplay.cpp b/libhwc2.1/libdevice/ExynosDisplay.cpp
index 0144137..7aa6a47 100644
--- a/libhwc2.1/libdevice/ExynosDisplay.cpp
+++ b/libhwc2.1/libdevice/ExynosDisplay.cpp
@@ -68,8 +68,14 @@ ExynosDisplay::PowerHalHintWorker::PowerHalHintWorker()
mPowerModeState(HWC2_POWER_MODE_OFF),
mVsyncPeriod(16666666),
mPowerHalExtAidl(nullptr),
- mDeathRecipient(AIBinder_DeathRecipient_new(BinderDiedCallback)) {
- InitWorker();
+ mDeathRecipient(AIBinder_DeathRecipient_new(BinderDiedCallback)) {}
+
+ExynosDisplay::PowerHalHintWorker::~PowerHalHintWorker() {
+ Exit();
+}
+
+int ExynosDisplay::PowerHalHintWorker::Init() {
+ return InitWorker();
}
void ExynosDisplay::PowerHalHintWorker::BinderDiedCallback(void *cookie) {
@@ -343,7 +349,8 @@ bool ExynosDisplay::PowerHalHintWorker::needUpdateIdleHintLocked(int64_t &timeou
}
int64_t currentTime = systemTime(SYSTEM_TIME_MONOTONIC);
- bool shouldEnableIdleHint = (mIdleHintDeadlineTime < currentTime);
+ bool shouldEnableIdleHint =
+ (mIdleHintDeadlineTime < currentTime) && CC_LIKELY(mIdleHintDeadlineTime > 0);
if (mIdleHintIsEnabled != shouldEnableIdleHint || mForceUpdateIdleHint) {
return true;
}
@@ -693,6 +700,8 @@ ExynosDisplay::ExynosDisplay(uint32_t index, ExynosDevice *device)
mLowFpsLayerInfo.initializeInfos();
+ mPowerHalHint.Init();
+
mUseDpu = true;
mBrightnessState.reset();
diff --git a/libhwc2.1/libdevice/ExynosDisplay.h b/libhwc2.1/libdevice/ExynosDisplay.h
index 129802b..90bbb76 100644
--- a/libhwc2.1/libdevice/ExynosDisplay.h
+++ b/libhwc2.1/libdevice/ExynosDisplay.h
@@ -1205,6 +1205,8 @@ class ExynosDisplay {
class PowerHalHintWorker : public Worker {
public:
PowerHalHintWorker();
+ virtual ~PowerHalHintWorker();
+ int Init();
void signalRefreshRate(hwc2_power_mode_t powerMode, uint32_t vsyncPeriod);
void signalIdle();
diff --git a/libhwc2.1/libdrmresource/drm/drmeventlistener.cpp b/libhwc2.1/libdrmresource/drm/drmeventlistener.cpp
index 20193ab..d847c2b 100644
--- a/libhwc2.1/libdrmresource/drm/drmeventlistener.cpp
+++ b/libhwc2.1/libdrmresource/drm/drmeventlistener.cpp
@@ -36,6 +36,10 @@ DrmEventListener::DrmEventListener(DrmDevice *drm)
: Worker("drm-event-listener", HAL_PRIORITY_URGENT_DISPLAY), drm_(drm) {
}
+DrmEventListener::~DrmEventListener() {
+ Exit();
+}
+
int DrmEventListener::Init() {
struct epoll_event ev;
char buffer[1024];
diff --git a/libhwc2.1/libdrmresource/drm/vsyncworker.cpp b/libhwc2.1/libdrmresource/drm/vsyncworker.cpp
index 97dc0dd..d2b4a02 100644
--- a/libhwc2.1/libdrmresource/drm/vsyncworker.cpp
+++ b/libhwc2.1/libdrmresource/drm/vsyncworker.cpp
@@ -49,6 +49,7 @@ VSyncWorker::VSyncWorker()
}
VSyncWorker::~VSyncWorker() {
+ Exit();
}
int VSyncWorker::Init(DrmDevice *drm, int display) {
diff --git a/libhwc2.1/libdrmresource/include/drmeventlistener.h b/libhwc2.1/libdrmresource/include/drmeventlistener.h
index 541d074..dbecadb 100644
--- a/libhwc2.1/libdrmresource/include/drmeventlistener.h
+++ b/libhwc2.1/libdrmresource/include/drmeventlistener.h
@@ -51,8 +51,7 @@ class DrmEventListener : public Worker {
static const uint32_t maxFds = 3;
public:
DrmEventListener(DrmDevice *drm);
- virtual ~DrmEventListener() {
- }
+ virtual ~DrmEventListener();
int Init();
diff --git a/libhwc2.1/libdrmresource/utils/worker.cpp b/libhwc2.1/libdrmresource/utils/worker.cpp
index 3b24312..4dbd0d9 100644
--- a/libhwc2.1/libdrmresource/utils/worker.cpp
+++ b/libhwc2.1/libdrmresource/utils/worker.cpp
@@ -26,7 +26,6 @@ Worker::Worker(const char *name, int priority, bool is_rt)
}
Worker::~Worker() {
- Exit();
}
int Worker::InitWorker() {