Thread (77 messages) 77 messages, 7 authors, 2023-11-22

Re: [PATCH 20/32] media/ivtvfb: Initialize fb_ops to fbdev I/O-memory helpers

From: Thomas Zimmermann <tzimmermann@suse.de>
Date: 2023-11-20 11:29:49
Also in: dri-devel, linux-media

Hi

Am 20.11.23 um 09:52 schrieb Hans Verkuil:
Hi Thomas,

On 15/11/2023 11:19, Thomas Zimmermann wrote:
quoted
Initialize the instance of struct fb_ops with fbdev initializer
macros for framebuffers in I/O address space. This explictily sets
the read/write, draw and mmap callbacks to the correct default
implementation.

Fbdev drivers sometimes rely on the callbacks being NULL for a
default implementation to be invoked; hence requireing the I/O
helpers to be built in any case. Setting all callbacks in all
drivers explicitly will allow to make the I/O helpers optional.
This benefits systems that do not use these functions.

Set the callbacks via macros. No functional changes.
Makes sense, shall I pick up this patch?

If you prefer to take it, then you can add:

Reviewed-by: Hans Verkuil <redacted>
Thanks. The series' final patches depend on this one. I'd preferably 
merge it at once through drm-misc.

Best regards
Thomas
Regards,

	Hans
quoted
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Andy Walls <awalls@md.metrocast.net>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: linux-media@vger.kernel.org
---
  drivers/media/pci/ivtv/Kconfig  | 4 +---
  drivers/media/pci/ivtv/ivtvfb.c | 6 +++---
  2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/media/pci/ivtv/Kconfig b/drivers/media/pci/ivtv/Kconfig
index 9be52101bc4f2..2498f9079b756 100644
--- a/drivers/media/pci/ivtv/Kconfig
+++ b/drivers/media/pci/ivtv/Kconfig
@@ -48,9 +48,7 @@ config VIDEO_IVTV_ALSA
  config VIDEO_FB_IVTV
  	tristate "Conexant cx23415 framebuffer support"
  	depends on VIDEO_IVTV && FB
-	select FB_CFB_FILLRECT
-	select FB_CFB_COPYAREA
-	select FB_CFB_IMAGEBLIT
+	select FB_IOMEM_HELPERS
  	help
  	  This is a framebuffer driver for the Conexant cx23415 MPEG
  	  encoder/decoder.
diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
index 23c8c094e791b..410477e3e6216 100644
--- a/drivers/media/pci/ivtv/ivtvfb.c
+++ b/drivers/media/pci/ivtv/ivtvfb.c
@@ -927,17 +927,17 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
  
  static const struct fb_ops ivtvfb_ops = {
  	.owner = THIS_MODULE,
+	.fb_read        = fb_io_read,
  	.fb_write       = ivtvfb_write,
  	.fb_check_var   = ivtvfb_check_var,
  	.fb_set_par     = ivtvfb_set_par,
  	.fb_setcolreg   = ivtvfb_setcolreg,
-	.fb_fillrect    = cfb_fillrect,
-	.fb_copyarea    = cfb_copyarea,
-	.fb_imageblit   = cfb_imageblit,
+	__FB_DEFAULT_IOMEM_OPS_DRAW,
  	.fb_cursor      = NULL,
  	.fb_ioctl       = ivtvfb_ioctl,
  	.fb_pan_display = ivtvfb_pan_display,
  	.fb_blank       = ivtvfb_blank,
+	__FB_DEFAULT_IOMEM_OPS_MMAP,
  };
  
  /* Restore hardware after firmware restart */
-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help