mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
drm/client: Make client support optional
Only build client code if DRM_CLIENT has been selected. Automatially do so if one of the default clients has been enabled. If client support has been disabled, the helpers for client-related events are empty and the regular client functions are not present. Amdgpu has an internal DRM client, so it has to select DRM_CLIENT by itself unconditionally. v3: - provide empty drm_client_debugfs_init() if DRM_CLIENT=n (kernel test robot) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: Xinhui Pan <Xinhui.Pan@amd.com> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241014085740.582287-12-tzimmermann@suse.de
This commit is contained in:
parent
88c79de857
commit
1f828b4dd4
|
@ -210,6 +210,15 @@ config DRM_DEBUG_MODESET_LOCK
|
||||||
|
|
||||||
If in doubt, say "N".
|
If in doubt, say "N".
|
||||||
|
|
||||||
|
config DRM_CLIENT
|
||||||
|
bool
|
||||||
|
depends on DRM
|
||||||
|
help
|
||||||
|
Enables support for DRM clients. DRM drivers that need
|
||||||
|
struct drm_client_dev and its interfaces should select this
|
||||||
|
option. Drivers that support the default clients should
|
||||||
|
select DRM_CLIENT_SELECTION instead.
|
||||||
|
|
||||||
config DRM_CLIENT_SELECTION
|
config DRM_CLIENT_SELECTION
|
||||||
bool
|
bool
|
||||||
depends on DRM
|
depends on DRM
|
||||||
|
@ -225,6 +234,7 @@ config DRM_CLIENT_SETUP
|
||||||
config DRM_FBDEV_EMULATION
|
config DRM_FBDEV_EMULATION
|
||||||
bool "Enable legacy fbdev support for your modesetting driver"
|
bool "Enable legacy fbdev support for your modesetting driver"
|
||||||
depends on DRM
|
depends on DRM
|
||||||
|
select DRM_CLIENT
|
||||||
select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
|
select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
|
||||||
default FB
|
default FB
|
||||||
help
|
help
|
||||||
|
|
|
@ -40,9 +40,6 @@ drm-y := \
|
||||||
drm_blend.o \
|
drm_blend.o \
|
||||||
drm_bridge.o \
|
drm_bridge.o \
|
||||||
drm_cache.o \
|
drm_cache.o \
|
||||||
drm_client.o \
|
|
||||||
drm_client_event.o \
|
|
||||||
drm_client_modeset.o \
|
|
||||||
drm_color_mgmt.o \
|
drm_color_mgmt.o \
|
||||||
drm_connector.o \
|
drm_connector.o \
|
||||||
drm_crtc.o \
|
drm_crtc.o \
|
||||||
|
@ -76,6 +73,10 @@ drm-y := \
|
||||||
drm_vblank_work.o \
|
drm_vblank_work.o \
|
||||||
drm_vma_manager.o \
|
drm_vma_manager.o \
|
||||||
drm_writeback.o
|
drm_writeback.o
|
||||||
|
drm-$(CONFIG_DRM_CLIENT) += \
|
||||||
|
drm_client.o \
|
||||||
|
drm_client_event.o \
|
||||||
|
drm_client_modeset.o
|
||||||
drm-$(CONFIG_DRM_LIB_RANDOM) += lib/drm_random.o
|
drm-$(CONFIG_DRM_LIB_RANDOM) += lib/drm_random.o
|
||||||
drm-$(CONFIG_COMPAT) += drm_ioc32.o
|
drm-$(CONFIG_COMPAT) += drm_ioc32.o
|
||||||
drm-$(CONFIG_DRM_PANEL) += drm_panel.o
|
drm-$(CONFIG_DRM_PANEL) += drm_panel.o
|
||||||
|
|
|
@ -5,6 +5,7 @@ config DRM_AMDGPU
|
||||||
depends on DRM && PCI && MMU
|
depends on DRM && PCI && MMU
|
||||||
depends on !UML
|
depends on !UML
|
||||||
select FW_LOADER
|
select FW_LOADER
|
||||||
|
select DRM_CLIENT
|
||||||
select DRM_CLIENT_SELECTION
|
select DRM_CLIENT_SELECTION
|
||||||
select DRM_DISPLAY_DP_HELPER
|
select DRM_DISPLAY_DP_HELPER
|
||||||
select DRM_DISPLAY_DSC_HELPER
|
select DRM_DISPLAY_DSC_HELPER
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
#include <drm/drm_drv.h>
|
#include <drm/drm_drv.h>
|
||||||
#include <drm/drm_print.h>
|
#include <drm/drm_print.h>
|
||||||
|
|
||||||
|
#include "drm_internal.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* drm_client_dev_unregister - Unregister clients
|
* drm_client_dev_unregister - Unregister clients
|
||||||
* @dev: DRM device
|
* @dev: DRM device
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
#include <drm/drm_atomic.h>
|
#include <drm/drm_atomic.h>
|
||||||
#include <drm/drm_auth.h>
|
#include <drm/drm_auth.h>
|
||||||
#include <drm/drm_bridge.h>
|
#include <drm/drm_bridge.h>
|
||||||
#include <drm/drm_client.h>
|
|
||||||
#include <drm/drm_debugfs.h>
|
#include <drm/drm_debugfs.h>
|
||||||
#include <drm/drm_device.h>
|
#include <drm/drm_device.h>
|
||||||
#include <drm/drm_drv.h>
|
#include <drm/drm_drv.h>
|
||||||
|
|
|
@ -48,6 +48,14 @@ struct drm_prime_file_private;
|
||||||
struct drm_printer;
|
struct drm_printer;
|
||||||
struct drm_vblank_crtc;
|
struct drm_vblank_crtc;
|
||||||
|
|
||||||
|
/* drm_client_event.c */
|
||||||
|
#if defined(CONFIG_DRM_CLIENT)
|
||||||
|
void drm_client_debugfs_init(struct drm_device *dev);
|
||||||
|
#else
|
||||||
|
static inline void drm_client_debugfs_init(struct drm_device *dev)
|
||||||
|
{ }
|
||||||
|
#endif
|
||||||
|
|
||||||
/* drm_file.c */
|
/* drm_file.c */
|
||||||
extern struct mutex drm_global_mutex;
|
extern struct mutex drm_global_mutex;
|
||||||
bool drm_dev_needs_global_mutex(struct drm_device *dev);
|
bool drm_dev_needs_global_mutex(struct drm_device *dev);
|
||||||
|
|
|
@ -236,6 +236,4 @@ int drm_client_modeset_dpms(struct drm_client_dev *client, int mode);
|
||||||
drm_for_each_connector_iter(connector, iter) \
|
drm_for_each_connector_iter(connector, iter) \
|
||||||
if (connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK)
|
if (connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK)
|
||||||
|
|
||||||
void drm_client_debugfs_init(struct drm_device *dev);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -5,10 +5,23 @@
|
||||||
|
|
||||||
struct drm_device;
|
struct drm_device;
|
||||||
|
|
||||||
|
#if defined(CONFIG_DRM_CLIENT)
|
||||||
void drm_client_dev_unregister(struct drm_device *dev);
|
void drm_client_dev_unregister(struct drm_device *dev);
|
||||||
void drm_client_dev_hotplug(struct drm_device *dev);
|
void drm_client_dev_hotplug(struct drm_device *dev);
|
||||||
void drm_client_dev_restore(struct drm_device *dev);
|
void drm_client_dev_restore(struct drm_device *dev);
|
||||||
void drm_client_dev_suspend(struct drm_device *dev, bool holds_console_lock);
|
void drm_client_dev_suspend(struct drm_device *dev, bool holds_console_lock);
|
||||||
void drm_client_dev_resume(struct drm_device *dev, bool holds_console_lock);
|
void drm_client_dev_resume(struct drm_device *dev, bool holds_console_lock);
|
||||||
|
#else
|
||||||
|
static inline void drm_client_dev_unregister(struct drm_device *dev)
|
||||||
|
{ }
|
||||||
|
static inline void drm_client_dev_hotplug(struct drm_device *dev)
|
||||||
|
{ }
|
||||||
|
static inline void drm_client_dev_restore(struct drm_device *dev)
|
||||||
|
{ }
|
||||||
|
static inline void drm_client_dev_suspend(struct drm_device *dev, bool holds_console_lock)
|
||||||
|
{ }
|
||||||
|
static inline void drm_client_dev_resume(struct drm_device *dev, bool holds_console_lock)
|
||||||
|
{ }
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user