#include <drm/drm_fb_cma_helper.h>
 #include <drm/drm_gem_cma_helper.h>
 #include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_modeset_helper.h>
 #include <drm/drm_of.h>
 
 #include "malidp_drv.h"
 static int __maybe_unused malidp_pm_suspend(struct device *dev)
 {
        struct drm_device *drm = dev_get_drvdata(dev);
-       struct malidp_drm *malidp = drm->dev_private;
-
-       drm_kms_helper_poll_disable(drm);
-       console_lock();
-       drm_fbdev_cma_set_suspend(malidp->fbdev, 1);
-       console_unlock();
-       malidp->pm_state = drm_atomic_helper_suspend(drm);
-       if (IS_ERR(malidp->pm_state)) {
-               console_lock();
-               drm_fbdev_cma_set_suspend(malidp->fbdev, 0);
-               console_unlock();
-               drm_kms_helper_poll_enable(drm);
-               return PTR_ERR(malidp->pm_state);
-       }
 
-       return 0;
+       return drm_mode_config_helper_suspend(drm);
 }
 
 static int __maybe_unused malidp_pm_resume(struct device *dev)
 {
        struct drm_device *drm = dev_get_drvdata(dev);
-       struct malidp_drm *malidp = drm->dev_private;
 
-       drm_atomic_helper_resume(drm, malidp->pm_state);
-       console_lock();
-       drm_fbdev_cma_set_suspend(malidp->fbdev, 0);
-       console_unlock();
-       drm_kms_helper_poll_enable(drm);
+       drm_mode_config_helper_resume(drm);
 
        return 0;
 }