Commit 30543d36 authored by Thomas Zimmermann's avatar Thomas Zimmermann

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

Initialize each 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: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230927074722.6197-37-tzimmermann@suse.de
parent 3fa0ee77
...@@ -1667,6 +1667,7 @@ config FB_SM501 ...@@ -1667,6 +1667,7 @@ config FB_SM501
select FB_CFB_FILLRECT select FB_CFB_FILLRECT
select FB_CFB_COPYAREA select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT select FB_CFB_IMAGEBLIT
select FB_IOMEM_FOPS
help help
Frame buffer driver for the CRT and LCD controllers in the Silicon Frame buffer driver for the CRT and LCD controllers in the Silicon
Motion SM501. Motion SM501.
......
...@@ -1452,6 +1452,7 @@ static void sm501fb_fillrect(struct fb_info *info, const struct fb_fillrect *rec ...@@ -1452,6 +1452,7 @@ static void sm501fb_fillrect(struct fb_info *info, const struct fb_fillrect *rec
static struct fb_ops sm501fb_ops_crt = { static struct fb_ops sm501fb_ops_crt = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
__FB_DEFAULT_IOMEM_OPS_RDWR,
.fb_check_var = sm501fb_check_var_crt, .fb_check_var = sm501fb_check_var_crt,
.fb_set_par = sm501fb_set_par_crt, .fb_set_par = sm501fb_set_par_crt,
.fb_blank = sm501fb_blank_crt, .fb_blank = sm501fb_blank_crt,
...@@ -1462,10 +1463,12 @@ static struct fb_ops sm501fb_ops_crt = { ...@@ -1462,10 +1463,12 @@ static struct fb_ops sm501fb_ops_crt = {
.fb_copyarea = sm501fb_copyarea, .fb_copyarea = sm501fb_copyarea,
.fb_imageblit = cfb_imageblit, .fb_imageblit = cfb_imageblit,
.fb_sync = sm501fb_sync, .fb_sync = sm501fb_sync,
__FB_DEFAULT_IOMEM_OPS_MMAP,
}; };
static struct fb_ops sm501fb_ops_pnl = { static struct fb_ops sm501fb_ops_pnl = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
__FB_DEFAULT_IOMEM_OPS_RDWR,
.fb_check_var = sm501fb_check_var_pnl, .fb_check_var = sm501fb_check_var_pnl,
.fb_set_par = sm501fb_set_par_pnl, .fb_set_par = sm501fb_set_par_pnl,
.fb_pan_display = sm501fb_pan_pnl, .fb_pan_display = sm501fb_pan_pnl,
...@@ -1476,6 +1479,7 @@ static struct fb_ops sm501fb_ops_pnl = { ...@@ -1476,6 +1479,7 @@ static struct fb_ops sm501fb_ops_pnl = {
.fb_copyarea = sm501fb_copyarea, .fb_copyarea = sm501fb_copyarea,
.fb_imageblit = cfb_imageblit, .fb_imageblit = cfb_imageblit,
.fb_sync = sm501fb_sync, .fb_sync = sm501fb_sync,
__FB_DEFAULT_IOMEM_OPS_MMAP,
}; };
/* sm501_init_cursor /* sm501_init_cursor
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment