#include <drm/drm_probe_helper.h>
 #include <drm/drm_rect.h>
 #include <drm/drm_vblank.h>
+#include <drm/drm_drv.h>
 
 #include "dpu_kms.h"
 #include "dpu_hw_lm.h"
        struct drm_display_mode *mode;
        struct drm_framebuffer *fb;
        struct drm_plane_state *state;
+       struct drm_modeset_acquire_ctx ctx;
        struct dpu_crtc_state *cstate;
 
-       int i, out_width;
+       int i, out_width, ret;
 
        dpu_crtc = s->private;
        crtc = &dpu_crtc->base;
 
-       drm_modeset_lock_all(crtc->dev);
+       DRM_MODESET_LOCK_ALL_BEGIN(crtc->dev, ctx, 0, ret);
        cstate = to_dpu_crtc_state(crtc->state);
 
        mode = &crtc->state->adjusted_mode;
                dpu_crtc->vblank_cb_time = ktime_set(0, 0);
        }
 
-       drm_modeset_unlock_all(crtc->dev);
+       DRM_MODESET_LOCK_ALL_END(crtc->dev, ctx, ret);
 
-       return 0;
+       return ret;
 }
 
 DEFINE_SHOW_ATTRIBUTE(_dpu_debugfs_status);