Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon: Use regular fbdev I/O helpers

Use the regular fbdev helpers for framebuffer I/O instead of DRM's
helpers. Radeon does not use damage handling, so DRM's fbdev helpers
are mere wrappers around the fbdev code.

By using fbdev helpers directly within each DRM fbdev emulation,
we can eventually remove DRM's wrapper functions entirely.

v4:
* use initializer macros for struct fb_ops
v2:
* use FB_IO_HELPERS option

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230530151228.22979-7-tzimmermann@suse.de

+4 -6
+1
drivers/gpu/drm/radeon/Kconfig
··· 11 11 select DRM_SUBALLOC_HELPER 12 12 select DRM_TTM 13 13 select DRM_TTM_HELPER 14 + select FB_IO_HELPERS if DRM_FBDEV_EMULATION 14 15 select SND_HDA_COMPONENT if SND_HDA_CORE 15 16 select POWER_SUPPLY 16 17 select HWMON
+3 -6
drivers/gpu/drm/radeon/radeon_fbdev.c
··· 24 24 * David Airlie 25 25 */ 26 26 27 + #include <linux/fb.h> 27 28 #include <linux/pci.h> 28 29 #include <linux/pm_runtime.h> 29 30 #include <linux/vga_switcheroo.h> ··· 191 190 192 191 static const struct fb_ops radeon_fbdev_fb_ops = { 193 192 .owner = THIS_MODULE, 194 - DRM_FB_HELPER_DEFAULT_OPS, 195 193 .fb_open = radeon_fbdev_fb_open, 196 194 .fb_release = radeon_fbdev_fb_release, 197 - .fb_read = drm_fb_helper_cfb_read, 198 - .fb_write = drm_fb_helper_cfb_write, 199 - .fb_fillrect = drm_fb_helper_cfb_fillrect, 200 - .fb_copyarea = drm_fb_helper_cfb_copyarea, 201 - .fb_imageblit = drm_fb_helper_cfb_imageblit, 195 + FB_DEFAULT_IO_OPS, 196 + DRM_FB_HELPER_DEFAULT_OPS, 202 197 .fb_destroy = radeon_fbdev_fb_destroy, 203 198 }; 204 199