[PATCH 5/7] drm/fb-helper: Add drm_fb_helper_defio_init()
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,
>>>> + * 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
>> * 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.
More information about the dri-devel