sdm: handle concurrency between PostCommit and SetPanelBrightness
Change-Id: I14cce9cf69ece6200b9c806847a45fbdbd49c0ad
diff --git a/sdm/libs/core/display_builtin.cpp b/sdm/libs/core/display_builtin.cpp
index 4cace41..1a853be 100644
--- a/sdm/libs/core/display_builtin.cpp
+++ b/sdm/libs/core/display_builtin.cpp
@@ -949,11 +949,14 @@
DisplayError DisplayBuiltIn::PostCommit(HWLayersInfo *hw_layers_info) {
DisplayBase::PostCommit(hw_layers_info);
-
- if (pending_brightness_) {
- Fence::Wait(retire_fence_);
- SetPanelBrightness(cached_brightness_);
- pending_brightness_ = false;
+ // Mutex scope
+ {
+ lock_guard<recursive_mutex> obj(brightness_lock_);
+ if (pending_brightness_) {
+ Fence::Wait(retire_fence_);
+ SetPanelBrightness(cached_brightness_);
+ pending_brightness_ = false;
+ }
}
if (commit_event_enabled_) {