Hi Daniel, Thank you for the patch. On Friday 08 January 2016 21:36:48 Daniel Vetter wrote: > Again since the drm core takes care of event unlinking/disarming this > is now just needless code. This looks good to me assuming that the mechanism works in the core, which looks like magic to me at the moment :-) After closing the "[PATCH] drm: Clean up pending events in the core" discussion (and assuming the conclusion is that is works), Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> > --- > drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20 -------------------- > drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 2 -- > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 10 ---------- > 3 files changed, 32 deletions(-) > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c > b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c index 88a4b706be16..4ec80ae1fa99 > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c > @@ -282,26 +282,6 @@ static void rcar_du_crtc_update_planes(struct > rcar_du_crtc *rcrtc) * Page Flip > */ > > -void rcar_du_crtc_cancel_page_flip(struct rcar_du_crtc *rcrtc, > - struct drm_file *file) > -{ > - struct drm_pending_vblank_event *event; > - struct drm_device *dev = rcrtc->crtc.dev; > - unsigned long flags; > - > - /* Destroy the pending vertical blanking event associated with the > - * pending page flip, if any, and disable vertical blanking interrupts. > - */ > - spin_lock_irqsave(&dev->event_lock, flags); > - event = rcrtc->event; > - if (event && event->base.file_priv == file) { > - rcrtc->event = NULL; > - event->base.destroy(&event->base); > - drm_crtc_vblank_put(&rcrtc->crtc); > - } > - spin_unlock_irqrestore(&dev->event_lock, flags); > -} > - > static void rcar_du_crtc_finish_page_flip(struct rcar_du_crtc *rcrtc) > { > struct drm_pending_vblank_event *event; > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h > b/drivers/gpu/drm/rcar-du/rcar_du_crtc.h index 4b95d9d08c49..2bbe3f5aab65 > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h > +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.h > @@ -67,8 +67,6 @@ enum rcar_du_output { > > int rcar_du_crtc_create(struct rcar_du_group *rgrp, unsigned int index); > void rcar_du_crtc_enable_vblank(struct rcar_du_crtc *rcrtc, bool enable); > -void rcar_du_crtc_cancel_page_flip(struct rcar_du_crtc *rcrtc, > - struct drm_file *file); > void rcar_du_crtc_suspend(struct rcar_du_crtc *rcrtc); > void rcar_du_crtc_resume(struct rcar_du_crtc *rcrtc); > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 40422f6b645e..0bb2b31555bf > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > @@ -220,15 +220,6 @@ done: > return ret; > } > > -static void rcar_du_preclose(struct drm_device *dev, struct drm_file *file) > -{ > - struct rcar_du_device *rcdu = dev->dev_private; > - unsigned int i; > - > - for (i = 0; i < rcdu->num_crtcs; ++i) > - rcar_du_crtc_cancel_page_flip(&rcdu->crtcs[i], file); > -} > - > static void rcar_du_lastclose(struct drm_device *dev) > { > struct rcar_du_device *rcdu = dev->dev_private; > @@ -271,7 +262,6 @@ static struct drm_driver rcar_du_driver = { > > | DRIVER_ATOMIC, > > .load = rcar_du_load, > .unload = rcar_du_unload, > - .preclose = rcar_du_preclose, > .lastclose = rcar_du_lastclose, > .set_busid = drm_platform_set_busid, > .get_vblank_counter = drm_vblank_no_hw_counter, -- Regards, Laurent Pinchart _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx