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