[PATCH 5/7] drm/fb-helper: Add drm_fb_helper_defio_init()

Daniel Vetter daniel at ffwll.ch
Fri Dec 15 15:43:28 UTC 2017


On Fri, Dec 15, 2017 at 02:18:55PM +0100, Noralf Trønnes wrote:
> 
> Den 14.12.2017 21.25, skrev Daniel Vetter:
> > On Thu, Dec 14, 2017 at 08:10:06PM +0100, Noralf Trønnes wrote:
> > > Add helper for initializing fbdev deferred I/O.
> > > 
> > > The cleanup could have happened in drm_fb_helper_fini(), but that would
> > > have required me to set fb_info->fbdefio to NULL in a couple of drivers
> > > before they call _fini() to avoid double defio cleanup. The problem is
> > > that one of those is vboxvideo which lives in Greg's staging tree.
> > > So I put the cleanup in drm_fb_helper_fbdev_teardown(), not perfect
> > > but not that bad either.
> > > 
> > > Signed-off-by: Noralf Trønnes <noralf at tronnes.org>
> > > ---
> > >   drivers/gpu/drm/drm_fb_helper.c | 53 +++++++++++++++++++++++++++++++++++++++++
> > >   include/drm/drm_fb_helper.h     |  6 +++++
> > >   2 files changed, 59 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> > > index 14aa83579e76..d5eeed1c7749 100644
> > > --- a/drivers/gpu/drm/drm_fb_helper.c
> > > +++ b/drivers/gpu/drm/drm_fb_helper.c
> > > @@ -1022,6 +1022,48 @@ void drm_fb_helper_deferred_io(struct fb_info *info,
> > >   }
> > >   EXPORT_SYMBOL(drm_fb_helper_deferred_io);
> > > +/**
> > > + * drm_fb_helper_defio_init - fbdev deferred I/O initialization
> > > + * @fb_helper: driver-allocated fbdev helper
> > > + *
> > > + * This function allocates &fb_deferred_io, sets callback to
> > > + * drm_fb_helper_deferred_io(), delay to 50ms and calls fb_deferred_io_init().
> > > + * drm_fb_helper_fbdev_teardown() cleans up deferred I/O.
> > > + *
> > > + * NOTE: A copy of &fb_ops is made and assigned to &info->fbops. This is done
> > > + * because fb_deferred_io_cleanup() clears &fbops->fb_mmap and would thereby
> > > + * affect other instances of that &fb_ops.
> > Do we need to call this before initial_config? Or after? Should be
> > documented imo.
> 
> Indeed it should be:
> 
>  * This function allocates &fb_deferred_io, sets callback to
>  * drm_fb_helper_deferred_io(), delay to 50ms and calls
> fb_deferred_io_init().
>  * It should be called from the &drm_fb_helper_funcs->fb_probe callback.
>  * drm_fb_helper_fbdev_teardown() cleans up deferred I/O.

Forgot this part, lgtm, Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>

I think we got them all now?
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list