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

Noralf Trønnes noralf at tronnes.org
Fri Dec 15 15:57:22 UTC 2017


Den 15.12.2017 16.43, skrev Daniel Vetter:
> 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?

Indeed, thanks Daniel.

Noralf.



More information about the dri-devel mailing list