]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
drm/fbdev: Add memory-agnostic fbdev client
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 24 Sep 2024 07:12:01 +0000 (09:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 12:02:02 +0000 (13:02 +0100)
commit7f5535fcbba2ce7f1908ee7e5c350032a4b1e9d0
tree9915482e13ae4a809d92dae3fbf23af00aa6d885
parentf9c843f56d01086a9ff80140ce9eedeceb001aca
drm/fbdev: Add memory-agnostic fbdev client

[ Upstream commit 5d08c44e47b9d41366714552bdd374ac4b595591 ]

Add an fbdev client that can work with any memory manager. The
client implementation is the same as existing code in fbdev-dma or
fbdev-shmem.

Provide struct drm_driver.fbdev_probe for the new client to allocate
the surface GEM buffer. The new callback replaces fb_probe of struct
drm_fb_helper_funcs, which does the same.

To use the new client, DRM drivers set fbdev_probe in their struct
drm_driver instance and call drm_fbdev_client_setup(). Probing and
creating the fbdev surface buffer is now independent from the other
operations in struct drm_fb_helper. For the pixel format, the fbdev
client either uses a specified format, the value in preferred_depth
or 32-bit RGB.

v2:
- test for struct drm_fb_helper.funcs for NULL (Sui)
- respect struct drm_mode_config.preferred_depth for default format

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240924071734.98201-4-tzimmermann@suse.de
Stable-dep-of: 6b481ab0e685 ("drm/nouveau: select FW caching")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/Makefile
drivers/gpu/drm/drm_fb_helper.c
drivers/gpu/drm/drm_fbdev_client.c [new file with mode: 0644]
include/drm/drm_drv.h
include/drm/drm_fbdev_client.h [new file with mode: 0644]