]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/fbdev: Add fbdev-shmem
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 19 Apr 2024 08:29:01 +0000 (10:29 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 2 May 2024 09:33:15 +0000 (11:33 +0200)
commit150f431a08317e0e0363a7f9147b6246d3b40ba6
tree8f691901d5ef6d81a57919e0b2f6489f79e91b08
parent747bda7bb5b1644a06734900326847a5d353c448
drm/fbdev: Add fbdev-shmem

Add an fbdev emulation for SHMEM-based memory managers. The code is
similar to fbdev-generic, but does not require an additional shadow
buffer for mmap(). Fbdev-shmem operates directly on the buffer object's
SHMEM pages. Fbdev's deferred-I/O mechanism updates the hardware state
on write operations.

The memory pages of GEM SHMEM cannot be detected by fbdefio. Therefore
fbdev-shmem implements the .get_page() hook in struct fb_deferred_io.
The fbdefio helpers call this hook to retrieve the page directly from
fbdev-shmem instead of trying to detect it internally.

v3:
- clarify on get_page mechanism in commit description (Javier)
v2:
- use drm_driver_legacy_fb_format() (Geert)

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