fbdev/au1100fb: Initialize fb_ops to fbdev I/O-memory helpers

Initialize the instance of struct fb_ops with fbdev initializer
macros for framebuffers in I/O address space. Set the read/write,
draw and mmap callbacks to the correct implementation and avoid
implicit defaults. Also select the necessary I/O helpers in Kconfig.

Fbdev drivers sometimes rely on the callbacks being NULL for a
default implementation to be invoked; hence requiring 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.

No functional changes.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230927074722.6197-9-tzimmermann@suse.de
This commit is contained in:
Thomas Zimmermann 2023-09-27 09:26:41 +02:00
parent 94cab8f6b2
commit 93ede59ccd
2 changed files with 4 additions and 8 deletions

View File

@ -1434,9 +1434,7 @@ endchoice
config FB_AU1100 config FB_AU1100
bool "Au1100 LCD Driver" bool "Au1100 LCD Driver"
depends on (FB = y) && MIPS_ALCHEMY depends on (FB = y) && MIPS_ALCHEMY
select FB_CFB_FILLRECT select FB_IOMEM_HELPERS
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
help help
This is the framebuffer driver for the AMD Au1100 SOC. It can drive This is the framebuffer driver for the AMD Au1100 SOC. It can drive
various panels and CRTs by passing in kernel cmd line option various panels and CRTs by passing in kernel cmd line option

View File

@ -348,15 +348,13 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
fbdev->fb_len); fbdev->fb_len);
} }
static const struct fb_ops au1100fb_ops = static const struct fb_ops au1100fb_ops = {
{
.owner = THIS_MODULE, .owner = THIS_MODULE,
__FB_DEFAULT_IOMEM_OPS_RDWR,
.fb_setcolreg = au1100fb_fb_setcolreg, .fb_setcolreg = au1100fb_fb_setcolreg,
.fb_blank = au1100fb_fb_blank, .fb_blank = au1100fb_fb_blank,
.fb_pan_display = au1100fb_fb_pan_display, .fb_pan_display = au1100fb_fb_pan_display,
.fb_fillrect = cfb_fillrect, __FB_DEFAULT_IOMEM_OPS_DRAW,
.fb_copyarea = cfb_copyarea,
.fb_imageblit = cfb_imageblit,
.fb_mmap = au1100fb_fb_mmap, .fb_mmap = au1100fb_fb_mmap,
}; };