All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: javierm@redhat.com, maarten.lankhorst@linux.intel.com,
	mripard@kernel.org
Cc: dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-fbdev@vger.kernel.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Helge Deller <deller@gmx.de>
Subject: [PATCH v3 01/12] fbdev: Add fb_ops init macros for framebuffers in DMA-able memory
Date: Fri,  7 Jul 2023 10:31:52 +0200	[thread overview]
Message-ID: <20230707083422.18691-2-tzimmermann@suse.de> (raw)
In-Reply-To: <20230707083422.18691-1-tzimmermann@suse.de>

Add initializer macros for struct fb_ops for framebuffers in DMA-able
memory areas. Also add a corresponding Kconfig token. As of now, this
is equivalent to system framebuffers and mostly useful for labeling
drivers correctly.

A later patch may add a generic DMA-specific mmap operation. Linux
offers a number of dma_mmap_*() helpers for different use cases.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Cc: Helge Deller <deller@gmx.de>
---
 drivers/video/fbdev/Kconfig |  8 ++++++++
 include/linux/fb.h          | 13 +++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index cecf15418632..f14229757311 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -168,6 +168,14 @@ config FB_DEFERRED_IO
 	bool
 	depends on FB
 
+config FB_DMA_HELPERS
+	bool
+	depends on FB
+	select FB_SYS_COPYAREA
+	select FB_SYS_FILLRECT
+	select FB_SYS_FOPS
+	select FB_SYS_IMAGEBLIT
+
 config FB_IO_HELPERS
 	bool
 	depends on FB
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 1d5c13f34b09..1191a78c5289 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -594,6 +594,19 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,
 	__FB_DEFAULT_SYS_OPS_DRAW, \
 	__FB_DEFAULT_SYS_OPS_MMAP
 
+/*
+ * Helpers for framebuffers in DMA-able memory
+ */
+
+#define __FB_DEFAULT_DMA_OPS_RDWR \
+	.fb_read	= fb_sys_read, \
+	.fb_write	= fb_sys_write
+
+#define __FB_DEFAULT_DMA_OPS_DRAW \
+	.fb_fillrect	= sys_fillrect, \
+	.fb_copyarea	= sys_copyarea, \
+	.fb_imageblit	= sys_imageblit
+
 /* drivers/video/fbmem.c */
 extern int register_framebuffer(struct fb_info *fb_info);
 extern void unregister_framebuffer(struct fb_info *fb_info);
-- 
2.41.0


WARNING: multiple messages have this Message-ID (diff)
From: Thomas Zimmermann <tzimmermann@suse.de>
To: javierm@redhat.com, maarten.lankhorst@linux.intel.com,
	mripard@kernel.org
Cc: dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-fbdev@vger.kernel.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Helge Deller <deller@gmx.de>
Subject: [PATCH v3 01/12] fbdev: Add fb_ops init macros for framebuffers in DMA-able memory
Date: Fri,  7 Jul 2023 10:31:52 +0200	[thread overview]
Message-ID: <20230707083422.18691-2-tzimmermann@suse.de> (raw)
In-Reply-To: <20230707083422.18691-1-tzimmermann@suse.de>

Add initializer macros for struct fb_ops for framebuffers in DMA-able
memory areas. Also add a corresponding Kconfig token. As of now, this
is equivalent to system framebuffers and mostly useful for labeling
drivers correctly.

A later patch may add a generic DMA-specific mmap operation. Linux
offers a number of dma_mmap_*() helpers for different use cases.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Cc: Helge Deller <deller@gmx.de>
---
 drivers/video/fbdev/Kconfig |  8 ++++++++
 include/linux/fb.h          | 13 +++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index cecf15418632..f14229757311 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -168,6 +168,14 @@ config FB_DEFERRED_IO
 	bool
 	depends on FB
 
+config FB_DMA_HELPERS
+	bool
+	depends on FB
+	select FB_SYS_COPYAREA
+	select FB_SYS_FILLRECT
+	select FB_SYS_FOPS
+	select FB_SYS_IMAGEBLIT
+
 config FB_IO_HELPERS
 	bool
 	depends on FB
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 1d5c13f34b09..1191a78c5289 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -594,6 +594,19 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,
 	__FB_DEFAULT_SYS_OPS_DRAW, \
 	__FB_DEFAULT_SYS_OPS_MMAP
 
+/*
+ * Helpers for framebuffers in DMA-able memory
+ */
+
+#define __FB_DEFAULT_DMA_OPS_RDWR \
+	.fb_read	= fb_sys_read, \
+	.fb_write	= fb_sys_write
+
+#define __FB_DEFAULT_DMA_OPS_DRAW \
+	.fb_fillrect	= sys_fillrect, \
+	.fb_copyarea	= sys_copyarea, \
+	.fb_imageblit	= sys_imageblit
+
 /* drivers/video/fbmem.c */
 extern int register_framebuffer(struct fb_info *fb_info);
 extern void unregister_framebuffer(struct fb_info *fb_info);
-- 
2.41.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Zimmermann <tzimmermann@suse.de>
To: javierm@redhat.com, maarten.lankhorst@linux.intel.com,
	mripard@kernel.org
Cc: linux-fbdev@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
	Helge Deller <deller@gmx.de>,
	dri-devel@lists.freedesktop.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	linux-tegra@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 01/12] fbdev: Add fb_ops init macros for framebuffers in DMA-able memory
Date: Fri,  7 Jul 2023 10:31:52 +0200	[thread overview]
Message-ID: <20230707083422.18691-2-tzimmermann@suse.de> (raw)
In-Reply-To: <20230707083422.18691-1-tzimmermann@suse.de>

Add initializer macros for struct fb_ops for framebuffers in DMA-able
memory areas. Also add a corresponding Kconfig token. As of now, this
is equivalent to system framebuffers and mostly useful for labeling
drivers correctly.

A later patch may add a generic DMA-specific mmap operation. Linux
offers a number of dma_mmap_*() helpers for different use cases.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Cc: Helge Deller <deller@gmx.de>
---
 drivers/video/fbdev/Kconfig |  8 ++++++++
 include/linux/fb.h          | 13 +++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index cecf15418632..f14229757311 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -168,6 +168,14 @@ config FB_DEFERRED_IO
 	bool
 	depends on FB
 
+config FB_DMA_HELPERS
+	bool
+	depends on FB
+	select FB_SYS_COPYAREA
+	select FB_SYS_FILLRECT
+	select FB_SYS_FOPS
+	select FB_SYS_IMAGEBLIT
+
 config FB_IO_HELPERS
 	bool
 	depends on FB
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 1d5c13f34b09..1191a78c5289 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -594,6 +594,19 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,
 	__FB_DEFAULT_SYS_OPS_DRAW, \
 	__FB_DEFAULT_SYS_OPS_MMAP
 
+/*
+ * Helpers for framebuffers in DMA-able memory
+ */
+
+#define __FB_DEFAULT_DMA_OPS_RDWR \
+	.fb_read	= fb_sys_read, \
+	.fb_write	= fb_sys_write
+
+#define __FB_DEFAULT_DMA_OPS_DRAW \
+	.fb_fillrect	= sys_fillrect, \
+	.fb_copyarea	= sys_copyarea, \
+	.fb_imageblit	= sys_imageblit
+
 /* drivers/video/fbmem.c */
 extern int register_framebuffer(struct fb_info *fb_info);
 extern void unregister_framebuffer(struct fb_info *fb_info);
-- 
2.41.0


  reply	other threads:[~2023-07-07  8:34 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-07  8:31 [PATCH v3 00/12] drm: Improve fbdev emulation for DMA-able framebuffers Thomas Zimmermann
2023-07-07  8:31 ` Thomas Zimmermann
2023-07-07  8:31 ` Thomas Zimmermann
2023-07-07  8:31 ` Thomas Zimmermann [this message]
2023-07-07  8:31   ` [PATCH v3 01/12] fbdev: Add fb_ops init macros for framebuffers in DMA-able memory Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31 ` [PATCH v3 02/12] drm/fbdev-dma: Use fbdev DMA helpers Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31 ` [PATCH v3 03/12] drm/tegra: " Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07 12:27   ` Thierry Reding
2023-07-07 12:27     ` Thierry Reding
2023-07-07 12:27     ` Thierry Reding
2023-07-07  8:31 ` [PATCH v3 04/12] drm/tegra: Set fbdev FBINFO_VIRTFB flag Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07 12:27   ` Thierry Reding
2023-07-07 12:27     ` Thierry Reding
2023-07-07 12:27     ` Thierry Reding
2023-07-07  8:31 ` [PATCH v3 05/12] drm/tegra: Store pointer to vmap'ed framebuffer in screen_buffer Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07 10:12   ` Javier Martinez Canillas
2023-07-07 10:12     ` Javier Martinez Canillas
2023-07-07 10:12     ` Javier Martinez Canillas
2023-07-07 12:27   ` Thierry Reding
2023-07-07 12:27     ` Thierry Reding
2023-07-07 12:27     ` Thierry Reding
2023-07-07  8:31 ` [PATCH v3 06/12] drm/exynos: Use fbdev DMA helpers Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31 ` [PATCH v3 07/12] drm/exynos: Set fbdev FBINFO_VIRTFB flag Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31 ` [PATCH v3 08/12] drm/omapdrm: Set VM flags in GEM-object mmap function Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:31   ` Thomas Zimmermann
2023-07-07  8:32 ` [PATCH v3 09/12] drm/omapdrm: Use GEM mmap for fbdev emulation Thomas Zimmermann
2023-07-07  8:32   ` Thomas Zimmermann
2023-07-07  8:32   ` Thomas Zimmermann
2023-07-07  8:32 ` [PATCH v3 10/12] drm/omapdrm: Set fbdev FBINFO_VIRTFB flag Thomas Zimmermann
2023-07-07  8:32   ` Thomas Zimmermann
2023-07-07  8:32   ` Thomas Zimmermann
2023-07-07  8:32 ` [PATCH v3 11/12] fbdev: Remove FB_DEFAULT_SYS_OPS Thomas Zimmermann
2023-07-07  8:32   ` Thomas Zimmermann
2023-07-07  8:32   ` Thomas Zimmermann
2023-07-07  8:32 ` [PATCH v3 12/12] fbdev: Harmonize some comments in <linux/fb.h> Thomas Zimmermann
2023-07-07  8:32   ` Thomas Zimmermann
2023-07-07  8:32   ` Thomas Zimmermann

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=20230707083422.18691-2-tzimmermann@suse.de \
    --to=tzimmermann@suse.de \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=javierm@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.