mirror of https://gitee.com/openkylin/linux.git
drm: rcar-du: Handle event when disabling CRTCs
The driver currently handles vblank events only when updating planes on a CRTC. The atomic update API however allows requesting an event when disabling a CRTC. This currently leads to event objects being leaked in the kernel and to events not being sent out. Fix it. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
This commit is contained in:
parent
9e7d80e648
commit
6dd47cfd03
|
@ -488,6 +488,13 @@ static void rcar_du_crtc_disable(struct drm_crtc *crtc)
|
|||
rcar_du_crtc_stop(rcrtc);
|
||||
rcar_du_crtc_put(rcrtc);
|
||||
|
||||
spin_lock_irq(&crtc->dev->event_lock);
|
||||
if (crtc->state->event) {
|
||||
drm_crtc_send_vblank_event(crtc, crtc->state->event);
|
||||
crtc->state->event = NULL;
|
||||
}
|
||||
spin_unlock_irq(&crtc->dev->event_lock);
|
||||
|
||||
rcrtc->outputs = 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue