diff --git a/hwc3/DrmHwcThree.cpp b/hwc3/DrmHwcThree.cpp
index b39d834..4fb33a1 100644
--- a/hwc3/DrmHwcThree.cpp
+++ b/hwc3/DrmHwcThree.cpp
@@ -25,17 +25,9 @@
 
 using ::android::HwcDisplay;
 
-// NOLINTNEXTLINE(bugprone-exception-escape)
 DrmHwcThree::~DrmHwcThree() {
-  std::vector<uint64_t> display_ids;
-  display_ids.reserve(Displays().size());
-  for (auto& [display_id, display] : Displays()) {
-    display_ids.push_back(display_id);
-  }
-
-  for (auto display_id : display_ids) {
-    RemoveAndDestroyDisplay(display_id);
-  }
+  /* Display deinit routine is handled by resource manager */
+  GetResMan().DeInit();
 }
 
 void DrmHwcThree::Init(std::shared_ptr<IComposerCallback> callback) {
@@ -72,17 +64,12 @@
   composer_callback_->onHotplug(static_cast<int64_t>(display_id), connected);
 }
 
-void DrmHwcThree::RemoveAndDestroyDisplay(uint64_t display_id) {
+void DrmHwcThree::RemoveDisplay(uint64_t display_id) {
   DEBUG_FUNC();
   HwcDisplay* display = GetDisplay(display_id);
   if (display == nullptr) {
     return;
   }
-
-  display->SetPowerMode(static_cast<int32_t>(HWC2::PowerMode::Off));
-  display->Deinit();
-
-  composer_resources_->RemoveDisplay(static_cast<int64_t>(display_id));
   Displays().erase(display_id);
 }
 
