# SPDX-License-Identifier: MIT

config DRM_DISPLAY_DP_AUX_BUS
	tristate
	depends on DRM
	depends on OF || COMPILE_TEST

config DRM_DISPLAY_HELPER
	tristate
	depends on DRM
	help
	  DRM helpers for display adapters.

if DRM_DISPLAY_HELPER

config DRM_BRIDGE_CONNECTOR
	bool
	select DRM_DISPLAY_HDMI_STATE_HELPER
	help
	  DRM connector implementation terminating DRM bridge chains.

config DRM_DISPLAY_DP_AUX_CEC
	bool "Enable DisplayPort CEC-Tunneling-over-AUX HDMI support"
	select DRM_DISPLAY_DP_HELPER
	select CEC_CORE
	help
	  Choose this option if you want to enable HDMI CEC support for
	  DisplayPort/USB-C to HDMI adapters.

	  Note: not all adapters support this feature, and even for those
	  that do support this they often do not hook up the CEC pin.

config DRM_DISPLAY_DP_AUX_CHARDEV
	bool "DRM DP AUX Interface"
	select DRM_DISPLAY_DP_HELPER
	help
	  Choose this option to enable a /dev/drm_dp_auxN node that allows to
	  read and write values to arbitrary DPCD registers on the DP aux
	  channel.

config DRM_DISPLAY_DP_HELPER
	bool
	help
	  DRM display helpers for DisplayPort.

config DRM_DISPLAY_DP_TUNNEL
	bool
	select DRM_DISPLAY_DP_HELPER
	help
	  Enable support for DisplayPort tunnels. This allows drivers to use
	  DP tunnel features like the Bandwidth Allocation mode to maximize the
	  BW utilization for display streams on Thunderbolt links.

config DRM_DISPLAY_DP_TUNNEL_STATE_DEBUG
	bool "Enable debugging the DP tunnel state"
	depends on REF_TRACKER
	depends on DRM_DISPLAY_DP_TUNNEL
	depends on DEBUG_KERNEL
	depends on EXPERT
	help
	  Enables debugging the DP tunnel manager's state, including the
	  consistency of all managed tunnels' reference counting and the state of
	  streams contained in tunnels.

	  If in doubt, say "N".

config DRM_DISPLAY_HDCP_HELPER
	bool
	help
	  DRM display helpers for HDCP.

config DRM_DISPLAY_HDMI_HELPER
	bool
	help
	  DRM display helpers for HDMI.

config DRM_DISPLAY_HDMI_STATE_HELPER
	bool
	select DRM_DISPLAY_HDMI_HELPER
	help
	  DRM KMS state helpers for HDMI.

endif # DRM_DISPLAY_HELPER
