Merge "sdm: Avoid looping over event data list when registering events"
diff --git a/sdm/libs/core/drm/hw_events_drm.cpp b/sdm/libs/core/drm/hw_events_drm.cpp
index 9af0deb..e63605e 100644
--- a/sdm/libs/core/drm/hw_events_drm.cpp
+++ b/sdm/libs/core/drm/hw_events_drm.cpp
@@ -400,14 +400,7 @@
}
DisplayError HWEventsDRM::RegisterPanelDead(bool enable) {
- uint32_t i = 0;
- for (; i < event_data_list_.size(); i++) {
- if (event_data_list_[i].event_type == HWEvent::PANEL_DEAD) {
- break;
- }
- }
-
- if (i == event_data_list_.size()) {
+ if (panel_dead_index_ == UINT32_MAX) {
DLOGI("panel dead is not supported event");
return kErrorNone;
}
@@ -433,14 +426,7 @@
}
DisplayError HWEventsDRM::RegisterIdleNotify(bool enable) {
- uint32_t i = 0;
- for (; i < event_data_list_.size(); i++) {
- if (event_data_list_[i].event_type == HWEvent::IDLE_NOTIFY) {
- break;
- }
- }
-
- if (i == event_data_list_.size()) {
+ if (idle_notify_index_ == UINT32_MAX) {
DLOGI("idle notify is not supported event");
return kErrorNone;
}
@@ -466,14 +452,7 @@
}
DisplayError HWEventsDRM::RegisterIdlePowerCollapse(bool enable) {
- uint32_t i = 0;
- for (; i < event_data_list_.size(); i++) {
- if (event_data_list_[i].event_type == HWEvent::IDLE_POWER_COLLAPSE) {
- break;
- }
- }
-
- if (i == event_data_list_.size()) {
+ if (idle_pc_index_ == UINT32_MAX) {
DLOGI("idle power collapse is not supported event");
return kErrorNone;
}
@@ -499,9 +478,9 @@
}
DisplayError HWEventsDRM::RegisterHwRecovery(bool enable) {
- if (hw_recovery_index_ == UINT_MAX) {
- DLOGE("Hardware recovery is not supported");
- return kErrorNotSupported;
+ if (hw_recovery_index_ == UINT32_MAX) {
+ DLOGI("Hardware recovery is not supported");
+ return kErrorNone;
}
struct drm_msm_event_req req = {};
diff --git a/sdm/libs/core/drm/hw_events_drm.h b/sdm/libs/core/drm/hw_events_drm.h
index fb4e65d..2a98504 100644
--- a/sdm/libs/core/drm/hw_events_drm.h
+++ b/sdm/libs/core/drm/hw_events_drm.h
@@ -96,17 +96,17 @@
pthread_t event_thread_{};
std::string event_thread_name_ = "SDM_EventThread";
bool exit_threads_ = false;
- uint32_t vsync_index_ = 0;
+ uint32_t vsync_index_ = UINT32_MAX;
bool vsync_enabled_ = false;
bool vsync_registered_ = false;
std::mutex vsync_mutex_; // To protect vsync_enabled_ and vsync_registered_
- uint32_t idle_notify_index_ = 0;
+ uint32_t idle_notify_index_ = UINT32_MAX;
sde_drm::DRMDisplayToken token_ = {};
bool is_primary_ = false;
- uint32_t panel_dead_index_ = 0;
- uint32_t idle_pc_index_ = 0;
+ uint32_t panel_dead_index_ = UINT32_MAX;
+ uint32_t idle_pc_index_ = UINT32_MAX;
bool disable_hw_recovery_ = false;
- uint32_t hw_recovery_index_ = UINT_MAX;
+ uint32_t hw_recovery_index_ = UINT32_MAX;
};
} // namespace sdm