diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2020-12-29 09:18:56 -0800 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2020-12-29 09:18:56 -0800 |
commit | b524bab223f923a4415fc103beac67d412f3ed97 (patch) | |
tree | 64a584df757f591d8cdb3e9d21cf4ba51661a8c3 | |
parent | 90a3488f5fc045aea2fdedb17a06cc16bc5559b2 (diff) | |
parent | 13e01178433b171a185619365512c9566f0e9ea2 (diff) |
Merge 13e01178433b171a185619365512c9566f0e9ea2 on remote branch
Change-Id: Ifae6321d51dbda1b3265b786dd947951526f268d
-rwxr-xr-x | sdm/libs/core/display_base.cpp | 2 | ||||
-rw-r--r-- | sdm/libs/core/drm/hw_events_drm.cpp | 11 |
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); } } |