Commit adb9d5a2 authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/dp: Move DisplayPort helpers into separate helper module



Move DisplayPort functions into a separate module to reduce the size
of the KMS helpers. Select DRM_DP_HELPER for all users of the code. To
avoid naming conflicts, rename drm_dp_helper.c to drm_dp.c

This change can help to reduce the size of the kernel binary. Some
numbers from a x86-64 test build:

Before:
	drm_kms_helper.ko:	447480 bytes

After:
	drm_dp_helper.ko:	216632 bytes
	drm_kms_helper.ko:	239424 bytes

For early-boot graphics, generic DRM drivers, such as simpledrm,
require DRM KMS helpers to be built into the kernel. Generic helper
functions for DisplayPort take up a significant portion of DRM KMS
helper library. These functions are not used by generic drivers and
can be loaded as a module.

v3:
	* fix include statement in DRM selftests
v2:
	* move DP helper code into dp/ (Jani)

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarLyude Paul <lyude@redhat.com>
Acked-by: default avatarDaniel Vetter <daniel@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20220114114535.29157-4-tzimmermann@suse.de
parent 3681eb24
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -80,6 +80,12 @@ config DRM_DEBUG_SELFTEST

	  If in doubt, say "N".

config DRM_DP_HELPER
	tristate
	depends on DRM
	help
	  DRM helpers for DisplayPort.

config DRM_KMS_HELPER
	tristate
	depends on DRM
@@ -236,6 +242,7 @@ config DRM_RADEON
	depends on DRM && PCI && MMU
	depends on AGP || !AGP
	select FW_LOADER
	select DRM_DP_HELPER
        select DRM_KMS_HELPER
        select DRM_TTM
	select DRM_TTM_HELPER
@@ -256,6 +263,7 @@ config DRM_AMDGPU
	tristate "AMD GPU"
	depends on DRM && PCI && MMU
	select FW_LOADER
	select DRM_DP_HELPER
	select DRM_KMS_HELPER
	select DRM_SCHED
	select DRM_TTM
+4 −6
Original line number Diff line number Diff line
@@ -48,21 +48,18 @@ obj-$(CONFIG_DRM_VRAM_HELPER) += drm_vram_helper.o
drm_ttm_helper-y := drm_gem_ttm_helper.o
obj-$(CONFIG_DRM_TTM_HELPER) += drm_ttm_helper.o

drm_kms_helper-y := drm_bridge_connector.o drm_crtc_helper.o drm_dp_helper.o \
drm_kms_helper-y := drm_bridge_connector.o drm_crtc_helper.o \
		drm_dsc.o drm_encoder_slave.o drm_flip_work.o drm_hdcp.o \
		drm_probe_helper.o \
		drm_plane_helper.o drm_dp_mst_topology.o drm_atomic_helper.o \
		drm_kms_helper_common.o drm_dp_dual_mode_helper.o \
		drm_plane_helper.o drm_atomic_helper.o \
		drm_kms_helper_common.o \
		drm_simple_kms_helper.o drm_modeset_helper.o \
		drm_scdc_helper.o drm_gem_atomic_helper.o \
		drm_gem_framebuffer_helper.o \
		drm_atomic_state_helper.o drm_damage_helper.o \
		drm_format_helper.o drm_self_refresh_helper.o drm_rect.o

drm_kms_helper-$(CONFIG_DRM_PANEL_BRIDGE) += bridge/panel.o
drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o
drm_kms_helper-$(CONFIG_DRM_DP_AUX_CHARDEV) += drm_dp_aux_dev.o
drm_kms_helper-$(CONFIG_DRM_DP_CEC) += drm_dp_cec.o

obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o
obj-$(CONFIG_DRM_DEBUG_SELFTEST) += selftests/
@@ -72,6 +69,7 @@ obj-$(CONFIG_DRM_MIPI_DBI) += drm_mipi_dbi.o
obj-$(CONFIG_DRM_MIPI_DSI) += drm_mipi_dsi.o
obj-$(CONFIG_DRM_PANEL_ORIENTATION_QUIRKS) += drm_panel_orientation_quirks.o
obj-y			+= arm/
obj-y			+= dp/
obj-$(CONFIG_DRM_TTM)	+= ttm/
obj-$(CONFIG_DRM_SCHED)	+= scheduler/
obj-$(CONFIG_DRM_TDFX)	+= tdfx/
+4 −0
Original line number Diff line number Diff line
@@ -184,6 +184,7 @@ config DRM_PARADE_PS8640
	tristate "Parade PS8640 MIPI DSI to eDP Converter"
	depends on OF
	select DRM_DP_AUX_BUS
	select DRM_DP_HELPER
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_PANEL
@@ -254,6 +255,7 @@ config DRM_TOSHIBA_TC358764
config DRM_TOSHIBA_TC358767
	tristate "Toshiba TC358767 eDP bridge"
	depends on OF
	select DRM_DP_HELPER
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select DRM_PANEL
@@ -273,6 +275,7 @@ config DRM_TOSHIBA_TC358768
config DRM_TOSHIBA_TC358775
	tristate "Toshiba TC358775 DSI/LVDS bridge"
	depends on OF
	select DRM_DP_HELPER
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select DRM_PANEL
@@ -300,6 +303,7 @@ config DRM_TI_SN65DSI83
config DRM_TI_SN65DSI86
	tristate "TI SN65DSI86 DSI to eDP bridge"
	depends on OF
	select DRM_DP_HELPER
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select DRM_PANEL
+2 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ config DRM_ANALOGIX_ANX6345
	tristate "Analogix ANX6345 bridge"
	depends on OF
	select DRM_ANALOGIX_DP
	select DRM_DP_HELPER
	select DRM_KMS_HELPER
	select REGMAP_I2C
	help
@@ -14,6 +15,7 @@ config DRM_ANALOGIX_ANX6345
config DRM_ANALOGIX_ANX78XX
	tristate "Analogix ANX78XX bridge"
	select DRM_ANALOGIX_DP
	select DRM_DP_HELPER
	select DRM_KMS_HELPER
	select REGMAP_I2C
	help
+1 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config DRM_CDNS_MHDP8546
	tristate "Cadence DPI/DP bridge"
	select DRM_DP_HELPER
	select DRM_KMS_HELPER
	select DRM_PANEL_BRIDGE
	depends on OF
Loading