summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2020-12-29 09:18:56 -0800
committerLinux Build Service Account <lnxbuild@localhost>2020-12-29 09:18:56 -0800
commitb524bab223f923a4415fc103beac67d412f3ed97 (patch)
tree64a584df757f591d8cdb3e9d21cf4ba51661a8c3
parent90a3488f5fc045aea2fdedb17a06cc16bc5559b2 (diff)
parent13e01178433b171a185619365512c9566f0e9ea2 (diff)
Merge 13e01178433b171a185619365512c9566f0e9ea2 on remote branch
Change-Id: Ifae6321d51dbda1b3265b786dd947951526f268d
-rwxr-xr-xsdm/libs/core/display_base.cpp2
-rw-r--r--sdm/libs/core/drm/hw_events_drm.cpp11
2 files changed, 10 insertions, 3 deletions
diff --git a/sdm/libs/core/display_base.cpp b/sdm/libs/core/display_base.cpp
index 8cbfbc7b..6187a4be 100755
--- a/sdm/libs/core/display_base.cpp
+++ b/sdm/libs/core/display_base.cpp
@@ -1199,6 +1199,8 @@ DisplayError DisplayBase::SetVSyncState(bool enable) {
}
if (error == kErrorNone) {
vsync_enable_ = enable;
+ } else {
+ vsync_enable_pending_ = true;
}
}
vsync_enable_pending_ = !enable ? false : vsync_enable_pending_;
diff --git a/sdm/libs/core/drm/hw_events_drm.cpp b/sdm/libs/core/drm/hw_events_drm.cpp
index 78e57254..528872c8 100644
--- a/sdm/libs/core/drm/hw_events_drm.cpp
+++ b/sdm/libs/core/drm/hw_events_drm.cpp
@@ -255,12 +255,16 @@ DisplayError HWEventsDRM::Deinit() {
}
DisplayError HWEventsDRM::SetEventState(HWEvent event, bool enable, void *arg) {
+ DisplayError error = kErrorNone;
switch (event) {
case HWEvent::VSYNC: {
std::lock_guard<std::mutex> lock(vsync_mutex_);
vsync_enabled_ = enable;
if (vsync_enabled_ && !vsync_registered_) {
- RegisterVSync();
+ error = RegisterVSync();
+ if (error != kErrorNone) {
+ return error;
+ }
vsync_registered_ = true;
} else if (!vsync_enabled_) {
vsync_registered_ = false;
@@ -510,11 +514,12 @@ DisplayError HWEventsDRM::RegisterHwRecovery(bool enable) {
void HWEventsDRM::HandleVSync(char *data) {
{
+ DisplayError ret = kErrorNone;
std::lock_guard<std::mutex> lock(vsync_mutex_);
vsync_registered_ = false;
if (vsync_enabled_) {
- RegisterVSync();
- vsync_registered_ = true;
+ ret = RegisterVSync();
+ vsync_registered_ = (ret == kErrorNone);
}
}