Move the locking for armada_drm_vbl_event_remove() into itself, which
makes this function symmetrical with armada_drm_vbl_event_add().
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
void armada_drm_vbl_event_remove(struct armada_crtc *dcrtc,
struct armada_vbl_event *evt)
{
+ spin_lock_irq(&dcrtc->irq_lock);
if (!list_empty(&evt->node)) {
list_del_init(&evt->node);
drm_vblank_put(dcrtc->crtc.dev, dcrtc->num);
}
+ spin_unlock_irq(&dcrtc->irq_lock);
}
static void armada_drm_vbl_event_run(struct armada_crtc *dcrtc)
dcrtc = drm_to_armada_crtc(dplane->base.base.crtc);
dcrtc->plane = NULL;
- spin_lock_irq(&dcrtc->irq_lock);
armada_drm_vbl_event_remove(dcrtc, &dplane->vbl.update);
- spin_unlock_irq(&dcrtc->irq_lock);
dplane->ctrl0 = 0;