mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 18:55:12 +00:00
5d08c44e47
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
20 lines
404 B
C
20 lines
404 B
C
/* SPDX-License-Identifier: MIT */
|
|
|
|
#ifndef DRM_FBDEV_CLIENT_H
|
|
#define DRM_FBDEV_CLIENT_H
|
|
|
|
struct drm_device;
|
|
struct drm_format_info;
|
|
|
|
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
int drm_fbdev_client_setup(struct drm_device *dev, const struct drm_format_info *format);
|
|
#else
|
|
static inline int drm_fbdev_client_setup(struct drm_device *dev,
|
|
const struct drm_format_info *format)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
#endif
|