diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 6c06e20..94a48e1 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -298,7 +298,7 @@
 typedef int (*GetDRMManager)(int fd, DRMManagerInterface **intf);
 
 /* Destroy DRMManager instance */
-typedef int (*DestroyDRMManager)(DRMManagerInterface *intf);
+typedef int (*DestroyDRMManager)();
 
 /*
  * DRM Manager Interface - Any class which plans to implement helper function for vendor
diff --git a/libdrmutils/drm_lib_loader.cpp b/libdrmutils/drm_lib_loader.cpp
index 845c150..83c9f1b 100644
--- a/libdrmutils/drm_lib_loader.cpp
+++ b/libdrmutils/drm_lib_loader.cpp
@@ -51,6 +51,14 @@
   return s_instance;
 }
 
+void DRMLibLoader::Destroy() {
+  lock_guard<mutex> obj(s_lock);
+  if (s_instance) {
+    delete s_instance;
+    s_instance = nullptr;
+  }
+}
+
 DRMLibLoader::DRMLibLoader() {
   if (Open("libsdedrm.so")) {
     if (Sym("GetDRMManager", reinterpret_cast<void **>(&func_get_drm_manager_)) &&
@@ -60,6 +68,13 @@
   }
 }
 
+DRMLibLoader::~DRMLibLoader() {
+  if (lib_) {
+    ::dlclose(lib_);
+    lib_ = nullptr;
+  }
+}
+
 bool DRMLibLoader::Open(const char *lib_name) {
   lib_ = ::dlopen(lib_name, RTLD_NOW);
 
diff --git a/libdrmutils/drm_lib_loader.h b/libdrmutils/drm_lib_loader.h
index dbc31a5..d132d69 100644
--- a/libdrmutils/drm_lib_loader.h
+++ b/libdrmutils/drm_lib_loader.h
@@ -37,12 +37,13 @@
 
 class DRMLibLoader {
  public:
-  ~DRMLibLoader() {}
+  ~DRMLibLoader();
   bool IsLoaded() { return is_loaded_; }
   sde_drm::GetDRMManager FuncGetDRMManager() { return func_get_drm_manager_; }
   sde_drm::DestroyDRMManager FuncDestroyDRMManager() { return func_destroy_drm_manager_; }
 
   static DRMLibLoader *GetInstance();
+  static void Destroy();
 
  private:
   DRMLibLoader();
diff --git a/sdm/libs/core/drm/hw_info_drm.cpp b/sdm/libs/core/drm/hw_info_drm.cpp
index 3fb87d3..4bcd791 100644
--- a/sdm/libs/core/drm/hw_info_drm.cpp
+++ b/sdm/libs/core/drm/hw_info_drm.cpp
@@ -108,6 +108,16 @@
   }
 }
 
+HWInfoDRM::~HWInfoDRM() {
+  delete hw_resource_;
+  hw_resource_ = nullptr;
+
+  if (drm_mgr_intf_) {
+    DRMLibLoader::GetInstance()->FuncDestroyDRMManager()();
+    drm_mgr_intf_ = nullptr;
+  }
+}
+
 DisplayError HWInfoDRM::GetDynamicBWLimits(HWResourceInfo *hw_resource) {
   HWDynBwLimitInfo* bw_info = &hw_resource->dyn_bw_info;
   for (int index = 0; index < kBwModeMax; index++) {
diff --git a/sdm/libs/core/drm/hw_info_drm.h b/sdm/libs/core/drm/hw_info_drm.h
index 143cbdf..9c9a0e0 100644
--- a/sdm/libs/core/drm/hw_info_drm.h
+++ b/sdm/libs/core/drm/hw_info_drm.h
@@ -44,6 +44,7 @@
 class HWInfoDRM: public HWInfoInterface {
  public:
   HWInfoDRM();
+  virtual ~HWInfoDRM();
   virtual DisplayError GetHWResourceInfo(HWResourceInfo *hw_resource);
   virtual DisplayError GetFirstDisplayInterfaceType(HWDisplayInterfaceInfo *hw_disp_info);
 
