Rework fbdev probing to support fbdev_probe in struct drm_driver and remove the old fb_probe callback. Provide an initializer macro for struct drm_driver that sets the callback according to the kernel configuration. Call drm_client_setup() to run the kernel's default client setup for DRM. Set fbdev_probe in struct drm_driver, so that the client setup can start the common fbdev client. The omapdrm driver specifies a preferred color mode of 32. As this is the default if no format has been given, leave it out entirely. v5: - select DRM_CLIENT_SELECTION Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Acked-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240924071734.98201-81-tzimmermann@suse.de
30 lines
747 B
C
30 lines
747 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* omap_fbdev.h -- OMAP DRM FBDEV Compatibility
|
|
*
|
|
* Copyright (C) 2011 Texas Instruments
|
|
* Author: Rob Clark <rob@ti.com>
|
|
*/
|
|
|
|
#ifndef __OMAPDRM_FBDEV_H__
|
|
#define __OMAPDRM_FBDEV_H__
|
|
|
|
struct drm_device;
|
|
struct drm_fb_helper;
|
|
struct drm_fb_helper_surface_size;
|
|
|
|
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
int omap_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
|
|
struct drm_fb_helper_surface_size *sizes);
|
|
#define OMAP_FBDEV_DRIVER_OPS \
|
|
.fbdev_probe = omap_fbdev_driver_fbdev_probe
|
|
void omap_fbdev_setup(struct drm_device *dev);
|
|
#else
|
|
#define OMAP_FBDEV_DRIVER_OPS \
|
|
.fbdev_probe = NULL
|
|
static inline void omap_fbdev_setup(struct drm_device *dev)
|
|
{
|
|
}
|
|
#endif
|
|
|
|
#endif /* __OMAPDRM_FBDEV_H__ */
|