From b8e6944e4f2ceff68a2382f26304b67d0808881d Mon Sep 17 00:00:00 2001 From: Tao Huang Date: Fri, 21 Jun 2024 09:27:23 +0800 Subject: [PATCH] drm/rockchip: vop: Fix mixing irqsave and irq in vop_crtc_atomic_flush() Signed-off-by: Tao Huang Change-Id: I4be4ad6728cf77f9f49d6824eed10f7b91d04815 --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 922bdaa03d82..ad8cf09685e9 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -4351,7 +4351,7 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc, */ vop_wait_for_irq_handler(vop); - spin_lock_irq(&crtc->dev->event_lock); + spin_lock_irqsave(&crtc->dev->event_lock, flags); if (crtc->state->event) { WARN_ON(drm_crtc_vblank_get(crtc) != 0); WARN_ON(vop->event); @@ -4359,7 +4359,7 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc, vop->event = crtc->state->event; crtc->state->event = NULL; } - spin_unlock_irq(&crtc->dev->event_lock); + spin_unlock_irqrestore(&crtc->dev->event_lock, flags); for_each_old_plane_in_state(old_state, plane, old_plane_state, i) { if (!old_plane_state->fb)