]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/fbdev: Clean up fbdev documentation
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 19 Apr 2024 08:29:36 +0000 (10:29 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 2 May 2024 09:33:34 +0000 (11:33 +0200)
Rewrite some docs that are not up-to-date any longer. Remove the TODO
item for fbdev-generic conversion, as the helper has been replaced. Make
documentation for DMA, SHMEM and TTM emulation available.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Jonathan Corbet <corbet@lwn.net>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240419083331.7761-44-tzimmermann@suse.de
Documentation/gpu/drm-kms-helpers.rst
Documentation/gpu/todo.rst
drivers/gpu/drm/drm_drv.c
drivers/gpu/drm/drm_fb_helper.c
include/drm/drm_mode_config.h

index e46ab9b670acd50163a4798bc7c1c458677e693c..8435e8621cc0872b5b8e29d89f156ee28106308f 100644 (file)
@@ -110,15 +110,21 @@ fbdev Helper Functions Reference
 .. kernel-doc:: drivers/gpu/drm/drm_fb_helper.c
    :doc: fbdev helpers
 
-.. kernel-doc:: include/drm/drm_fb_helper.h
-   :internal:
+.. kernel-doc:: drivers/gpu/drm/drm_fbdev_dma.c
+   :export:
 
-.. kernel-doc:: drivers/gpu/drm/drm_fb_helper.c
+.. kernel-doc:: drivers/gpu/drm/drm_fbdev_shmem.c
    :export:
 
 .. kernel-doc:: drivers/gpu/drm/drm_fbdev_ttm.c
    :export:
 
+.. kernel-doc:: include/drm/drm_fb_helper.h
+   :internal:
+
+.. kernel-doc:: drivers/gpu/drm/drm_fb_helper.c
+   :export:
+
 format Helper Functions Reference
 =================================
 
index fb9ad120b141478a657012f752a5207e98984c73..e2a0585915b323825f1c300f490972ec1ef90e7a 100644 (file)
@@ -243,19 +243,6 @@ Contact: Maintainer of the driver you plan to convert
 
 Level: Intermediate
 
-Convert drivers to use drm_fbdev_generic_setup()
-------------------------------------------------
-
-Most drivers can use drm_fbdev_generic_setup(). Driver have to implement
-atomic modesetting and GEM vmap support. Historically, generic fbdev emulation
-expected the framebuffer in system memory or system-like memory. By employing
-struct iosys_map, drivers with frambuffers in I/O memory can be supported
-as well.
-
-Contact: Maintainer of the driver you plan to convert
-
-Level: Intermediate
-
 Reimplement functions in drm_fbdev_fb_ops without fbdev
 -------------------------------------------------------
 
index 535b624d4c9da92c067d0342540bae6664a72475..b8186cf16230786bdeb6fa431abcfc335417f5fc 100644 (file)
@@ -346,7 +346,7 @@ void drm_minor_release(struct drm_minor *minor)
  *             if (ret)
  *                     return ret;
  *
- *             drm_fbdev_generic_setup(drm, 32);
+ *             drm_fbdev_{...}_setup(drm, 32);
  *
  *             return 0;
  *     }
index d612133e2cf7ec99a7e0620ea6f430664028d6f6..e2e19f49342e1b90d17c49b008f5c2a524fc64d8 100644 (file)
@@ -85,12 +85,8 @@ static DEFINE_MUTEX(kernel_fb_helper_lock);
  * The fb helper functions are useful to provide an fbdev on top of a drm kernel
  * mode setting driver. They can be used mostly independently from the crtc
  * helper functions used by many drivers to implement the kernel mode setting
- * interfaces.
- *
- * Drivers that support a dumb buffer with a virtual address and mmap support,
- * should try out the generic fbdev emulation using drm_fbdev_generic_setup().
- * It will automatically set up deferred I/O if the driver requires a shadow
- * buffer.
+ * interfaces. Drivers that use one of the shared memory managers, TTM, SHMEM,
+ * DMA, should instead use the corresponding fbdev emulation.
  *
  * Existing fbdev implementations should restore the fbdev console by using
  * drm_fb_helper_lastclose() as their &drm_driver.lastclose callback.
@@ -126,9 +122,6 @@ static DEFINE_MUTEX(kernel_fb_helper_lock);
  * atomic context. If drm_fb_helper_deferred_io() is used as the deferred_io
  * callback it will also schedule dirty_work with the damage collected from the
  * mmap page writes.
- *
- * Deferred I/O is not compatible with SHMEM. Such drivers should request an
- * fbdev shadow buffer and call drm_fbdev_generic_setup() instead.
  */
 
 static void drm_fb_helper_restore_lut_atomic(struct drm_crtc *crtc)
index 8de3c9a5f61b5079f960d21efaee4bbe61d48867..ab0f167474b1f1a85e46bd83b6d0c6cbfa22dc1b 100644 (file)
@@ -106,8 +106,8 @@ struct drm_mode_config_funcs {
         * Drivers implementing fbdev emulation use drm_kms_helper_hotplug_event()
         * to call this hook to inform the fbdev helper of output changes.
         *
-        * This hook is deprecated, drivers should instead use
-        * drm_fbdev_generic_setup() which takes care of any necessary
+        * This hook is deprecated, drivers should instead implement fbdev
+        * support with struct drm_client, which takes care of any necessary
         * hotplug event forwarding already without further involvement by
         * the driver.
         */