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 <nor...@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.vet...@ffwll.ch>

I think we got them all now?

Indeed, thanks Daniel.

Noralf.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to