diff --git a/sdm/libs/core/drm/hw_device_drm.h b/sdm/libs/core/drm/hw_device_drm.h
index 5933347..c4a330a 100644
--- a/sdm/libs/core/drm/hw_device_drm.h
+++ b/sdm/libs/core/drm/hw_device_drm.h
@@ -231,7 +231,6 @@
   uint32_t cmd_mode_index_ = 0;
   bool switch_mode_valid_ = false;
   bool doze_poms_switch_done_ = false;
-  bool pending_poms_switch_ = false;
   bool active_ = false;
   DRMPowerMode last_power_mode_ = DRMPowerMode::OFF;
   bool pending_doze_ = false;
diff --git a/sdm/libs/core/drm/hw_peripheral_drm.cpp b/sdm/libs/core/drm/hw_peripheral_drm.cpp
index 85ec982..6b3faeb 100644
--- a/sdm/libs/core/drm/hw_peripheral_drm.cpp
+++ b/sdm/libs/core/drm/hw_peripheral_drm.cpp
@@ -105,7 +105,7 @@
     return kErrorNotSupported;
   }
 
-  if (doze_poms_switch_done_ || pending_poms_switch_) {
+  if (doze_poms_switch_done_) {
     return kErrorNotSupported;
   }
 
@@ -124,7 +124,7 @@
 
 
 DisplayError HWPeripheralDRM::SetRefreshRate(uint32_t refresh_rate) {
-  if (doze_poms_switch_done_ || pending_poms_switch_) {
+  if (doze_poms_switch_done_) {
     // poms switch in progress
     // Defer any refresh rate setting.
     return kErrorNotSupported;
@@ -139,7 +139,7 @@
 }
 
 DisplayError HWPeripheralDRM::SetDisplayMode(const HWDisplayMode hw_display_mode) {
-  if (doze_poms_switch_done_ || pending_poms_switch_) {
+  if (doze_poms_switch_done_) {
     return kErrorNotSupported;
   }
 
@@ -182,13 +182,6 @@
   synchronous_commit_ = false;
   active_ = true;
 
-  if (pending_poms_switch_) {
-    HWDeviceDRM::SetDisplayMode(kModeCommand);
-    hw_panel_info_.bitclk_rates = bitclk_rates_;
-    doze_poms_switch_done_ = true;
-    pending_poms_switch_ = false;
-  }
-
   idle_pc_state_ = sde_drm::DRMIdlePCState::NONE;
 
   return error;
@@ -512,7 +505,6 @@
   }
   idle_pc_state_ = sde_drm::DRMIdlePCState::NONE;
   idle_pc_enabled_ = true;
-  pending_poms_switch_ = false;
   active_ = true;
 
   return kErrorNone;
@@ -526,7 +518,6 @@
     return err;
   }
 
-  pending_poms_switch_ = false;
   active_ = false;
 
   return kErrorNone;
@@ -535,6 +526,7 @@
 DisplayError HWPeripheralDRM::Doze(const HWQosData &qos_data, int *release_fence) {
   DTRACE_SCOPED();
 
+  bool pending_poms_switch = false;
   if (!first_cycle_ && switch_mode_valid_ && !doze_poms_switch_done_ &&
     (current_mode_index_ == video_mode_index_)) {
     if (active_) {
@@ -542,7 +534,7 @@
       hw_panel_info_.bitclk_rates = bitclk_rates_;
       doze_poms_switch_done_ = true;
     } else {
-      pending_poms_switch_ = true;
+      pending_poms_switch = true;
     }
   }
 
@@ -551,6 +543,12 @@
     return err;
   }
 
+  if (pending_poms_switch) {
+    HWDeviceDRM::SetDisplayMode(kModeCommand);
+    hw_panel_info_.bitclk_rates = bitclk_rates_;
+    doze_poms_switch_done_ = true;
+  }
+
   if (first_cycle_) {
     active_ = true;
   }
@@ -573,14 +571,13 @@
     return err;
   }
 
-  pending_poms_switch_ = false;
   active_ = true;
 
   return kErrorNone;
 }
 
 DisplayError HWPeripheralDRM::SetDisplayAttributes(uint32_t index) {
-  if (doze_poms_switch_done_ || pending_poms_switch_) {
+  if (doze_poms_switch_done_) {
     return kErrorNotSupported;
   }
 
