drm/fbdev-dma: Implement fbdev emulation for GEM DMA helpers
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 13 Mar 2023 15:51:14 +0000 (16:51 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 14 Mar 2023 16:07:47 +0000 (17:07 +0100)
commitb79fe9abd58bab7363583d30d67a5385ed779616
tree1d508f716e969a8470d73a6a6fccfcb52307a5c7
parent9fcc00eafd28d50756ec2ee103ee6ed479610bc6
drm/fbdev-dma: Implement fbdev emulation for GEM DMA helpers

Implement fbdev emulation that is optimized for drivers that use
DMA helpers. The buffers may no tbe moveable, may not require damage
handling and have to be located in system memory. This allows fbdev
emulation to operate directly on the buffer and mmap it to userspace.

Besides those constraints, the emulation works like in the generic
code. As an internal DRM client provides, it receives hotplug, restore
and unregister events. The DRM client is independent from the fbdev
probing, which runs on the first successful hotplug event.

The emulation is part of the DMA helper module and not build unless
DMA helpers and fbdev emulation has been configured.

Tested with vc4.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230313155138.20584-2-tzimmermann@suse.de
drivers/gpu/drm/Makefile
drivers/gpu/drm/drm_fbdev_dma.c [new file with mode: 0644]
include/drm/drm_fbdev_dma.h [new file with mode: 0644]