[PATCH 20/32] media/ivtvfb: Initialize fb_ops to fbdev I/O-memory helpers
Hans Verkuil
hverkuil at xs4all.nl
Mon Nov 20 08:52:45 UTC 2023
Hi Thomas,
On 15/11/2023 11:19, Thomas Zimmermann wrote:
> 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 <hverkuil-cisco at xs4all.nl>
Regards,
Hans
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> Cc: Andy Walls <awalls at md.metrocast.net>
> Cc: Mauro Carvalho Chehab <mchehab at kernel.org>
> Cc: linux-media at 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 */
More information about the dri-devel
mailing list