drm/fb-helper: Perform all fbdev I/O with the same implementation
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 3 Nov 2022 15:14:40 +0000 (16:14 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Sat, 5 Nov 2022 16:05:54 +0000 (17:05 +0100)
commit983780918c759fdbbf0bf033e701bbff75d2af23
treeb1b7bc5fe54d8fb9cc2a44d0b4df7386633dfd85
parent3add5f97734d8cbb5e2035dca226f691eb2f12a2
drm/fb-helper: Perform all fbdev I/O with the same implementation

Implement the fbdev's read/write helpers with the same functions. Use
the generic fbdev's code as template. Convert all drivers.

DRM's fb helpers must implement regular I/O functionality in struct
fb_ops and possibly perform a damage update. Handle all this in the
same functions and convert drivers. The functionality has been used
as part of the generic fbdev code for some time. The drivers don't
set struct drm_fb_helper.fb_dirty, so they will not be affected by
damage handling.

For I/O memory, fb helpers now provide drm_fb_helper_cfb_read() and
drm_fb_helper_cfb_write(). Several drivers require these. Until now
tegra used I/O read and write, although the memory buffer appears to
be in system memory. So use _sys_ helpers now.

v3:
* fix docs (Javier)
v2:
* rebase onto vmwgfx changes

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221103151446.2638-18-tzimmermann@suse.de
drivers/gpu/drm/armada/armada_fbdev.c
drivers/gpu/drm/drm_fb_helper.c
drivers/gpu/drm/exynos/exynos_drm_fbdev.c
drivers/gpu/drm/gma500/framebuffer.c
drivers/gpu/drm/i915/display/intel_fbdev.c
drivers/gpu/drm/radeon/radeon_fb.c
drivers/gpu/drm/tegra/fb.c
include/drm/drm_fb_helper.h