linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: javierm@redhat.com, deller@gmx.de, airlied@gmail.com, daniel@ffwll.ch
Cc: dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Jonathan Corbet <corbet@lwn.net>
Subject: [PATCH v3 43/43] drm/fbdev: Clean up fbdev documentation
Date: Fri, 19 Apr 2024 10:29:36 +0200	[thread overview]
Message-ID: <20240419083331.7761-44-tzimmermann@suse.de> (raw)
In-Reply-To: <20240419083331.7761-1-tzimmermann@suse.de>

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>
---
 Documentation/gpu/drm-kms-helpers.rst | 12 +++++++++---
 Documentation/gpu/todo.rst            | 13 -------------
 drivers/gpu/drm/drm_drv.c             |  2 +-
 drivers/gpu/drm/drm_fb_helper.c       | 11 ++---------
 include/drm/drm_mode_config.h         |  4 ++--
 5 files changed, 14 insertions(+), 28 deletions(-)

diff --git a/Documentation/gpu/drm-kms-helpers.rst b/Documentation/gpu/drm-kms-helpers.rst
index e46ab9b670acd..8435e8621cc08 100644
--- a/Documentation/gpu/drm-kms-helpers.rst
+++ b/Documentation/gpu/drm-kms-helpers.rst
@@ -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
 =================================
 
diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index fb9ad120b1414..e2a0585915b32 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -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
 -------------------------------------------------------
 
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 243cacb3575c0..cfcd45480d326 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -345,7 +345,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;
  *	}
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index d612133e2cf7e..e2e19f49342e1 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -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)
diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 9d8acf7a10eb8..77b8429e7b2b2 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -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.
 	 */
-- 
2.44.0


      parent reply	other threads:[~2024-04-19  8:33 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-19  8:28 [PATCH v3 00/43] drm: Provide fbdev emulation per memory manager Thomas Zimmermann
2024-04-19  8:28 ` [PATCH v3 01/43] drm/fbdev-generic: Do not set physical framebuffer address Thomas Zimmermann
2024-04-19  8:28 ` [PATCH v3 02/43] fbdev/deferred-io: Move pageref setup into separate helper Thomas Zimmermann
2024-04-19  8:28 ` [PATCH v3 03/43] fbdev/deferred-io: Clean up pageref on lastclose Thomas Zimmermann
2024-04-19  8:28 ` [PATCH v3 04/43] fbdev/deferred-io: Test screen_buffer for vmalloc'ed memory Thomas Zimmermann
2024-04-19  8:28 ` [PATCH v3 05/43] fbdev/deferred-io: Test smem_start for I/O memory Thomas Zimmermann
2024-04-19  8:28 ` [PATCH v3 06/43] fbdev/deferred-io: Always call get_page() for framebuffer pages Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 07/43] fbdev/deferred-io: Provide get_page hook in struct fb_deferred_io Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 08/43] drm/fbdev: Add fbdev-shmem Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 09/43] drm/ast: Use fbdev-shmem Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 10/43] drm/gud: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 11/43] drm/hyperv: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 12/43] drm/mgag200: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 13/43] drm/solomon: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 14/43] drm/tiny/cirrus: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 15/43] drm/tiny/gm12u320: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 16/43] drm/tiny/ofdrm: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 17/43] drm/tiny/simpledrm: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 18/43] drm/udl: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 19/43] drm/virtio: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 20/43] drm/vkms: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 21/43] drm/fbdev-dma: Implement damage handling and deferred I/O Thomas Zimmermann
2024-09-03 22:53   ` Linus Walleij
2024-09-04  6:09     ` Alexander Stein
2024-09-04  6:36       ` Linus Walleij
2024-09-04  6:43         ` Alexander Stein
2024-09-04  7:08           ` Thomas Zimmermann
2024-09-04  7:04     ` Thomas Zimmermann
2024-09-04  7:41     ` Thomas Zimmermann
2024-09-04  8:29       ` Alexander Stein
2024-04-19  8:29 ` [PATCH v3 22/43] drm/arm/komeda: Use fbdev-dma Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 23/43] drm/hisilicon/kirin: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 24/43] drm/imx/lcdc: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 25/43] drm/ingenic: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 26/43] drm/mediatek: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 27/43] drm/panel/panel-ilitek-9341: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 28/43] drm/renesas/rcar-du: " Thomas Zimmermann
2024-04-19  9:48   ` Kieran Bingham
2024-06-17 17:33   ` Geert Uytterhoeven
2024-04-19  8:29 ` [PATCH v3 29/43] drm/renesas/rz-du: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 30/43] drm/renesas/shmobile: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 31/43] drm/rockchip: " Thomas Zimmermann
2024-04-19 11:10   ` Heiko Stuebner
2024-04-19  8:29 ` [PATCH v3 32/43] drm/tiny/hx8357d: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 33/43] drm/tiny/ili9163: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 34/43] drm/tiny/ili9225: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 35/43] drm/tiny/ili9341: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 36/43] drm/tiny/ili9486: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 37/43] drm/tiny/mi0283qt: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 38/43] drm/tiny/panel-mipi-dbi: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 39/43] drm/tiny/repaper: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 40/43] drm/tiny/st7586: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 41/43] drm/tiny/st7735r: " Thomas Zimmermann
2024-04-19  8:29 ` [PATCH v3 42/43] drm/fbdev-generic: Convert to fbdev-ttm Thomas Zimmermann
2024-04-19  8:29 ` Thomas Zimmermann [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240419083331.7761-44-tzimmermann@suse.de \
    --to=tzimmermann@suse.de \
    --cc=airlied@gmail.com \
    --cc=corbet@lwn.net \
    --cc=daniel@ffwll.ch \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=javierm@redhat.com \
    --cc=linux-fbdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).