drm/rockchip: vop: Fix mixing irqsave and irq in vop_crtc_atomic_flush()

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I4be4ad6728cf77f9f49d6824eed10f7b91d04815
This commit is contained in:
Tao Huang
2024-06-21 09:27:23 +08:00
parent fa4c12dab8
commit b8e6944e4f

View File

@@ -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)