# SPDX-License-Identifier: GPL-2.0-only

config DRM_MSM
	tristate "MSM DRM"
	depends on DRM
	depends on ARCH_QCOM || SOC_IMX5 || (ARM && COMPILE_TEST)
	depends on OF && COMMON_CLK
	depends on MMU
	depends on INTERCONNECT || !INTERCONNECT
	select QCOM_MDT_LOADER if ARCH_QCOM
	select REGULATOR
	select DRM_KMS_HELPER
	select DRM_PANEL
	select SHMEM
	select TMPFS
	select QCOM_SCM if ARCH_QCOM
	select QCOM_COMMAND_DB if ARCH_QCOM
	select WANT_DEV_COREDUMP
	select SND_SOC_HDMI_CODEC if SND_SOC
	select SYNC_FILE
	select PM_OPP
	help
	  DRM/KMS driver for MSM/snapdragon.

config DRM_MSM_GPU_STATE
	bool
	depends on DRM_MSM && (DEBUG_FS || DEV_COREDUMP)
	default y

config DRM_MSM_REGISTER_LOGGING
	bool "MSM DRM register logging"
	depends on DRM_MSM
	default n
	help
	  Compile in support for logging register reads/writes in a format
	  that can be parsed by envytools demsm tool.  If enabled, register
	  logging can be switched on via msm.reglog=y module param.

config DRM_MSM_GPU_SUDO
	bool "Enable SUDO flag on submits"
	depends on DRM_MSM && EXPERT
	default n
	help
	  Enable userspace that has CAP_SYS_RAWIO to submit GPU commands
	  that are run from RB instead of IB1.  This essentially gives
	  userspace kernel level access, but is useful for firmware
	  debugging.

	  Only use this if you are a driver developer.  This should *not*
	  be enabled for production kernels.  If unsure, say N.

config DRM_MSM_HDMI_HDCP
	bool "Enable HDMI HDCP support in MSM DRM driver"
	depends on DRM_MSM && QCOM_SCM
	default y
	help
	  Choose this option to enable HDCP state machine

config DRM_MSM_DSI
	bool "Enable DSI support in MSM DRM driver"
	depends on DRM_MSM
	select DRM_PANEL
	select DRM_MIPI_DSI
	default y
	help
	  Choose this option if you have a need for MIPI DSI connector
	  support.

config DRM_MSM_DSI_PLL
	bool "Enable DSI PLL driver in MSM DRM"
	depends on DRM_MSM_DSI && COMMON_CLK
	default y
	help
	  Choose this option to enable DSI PLL driver which provides DSI
	  source clocks under common clock framework.

config DRM_MSM_DSI_28NM_PHY
	bool "Enable DSI 28nm PHY driver in MSM DRM"
	depends on DRM_MSM_DSI
	default y
	help
	  Choose this option if the 28nm DSI PHY is used on the platform.

config DRM_MSM_DSI_20NM_PHY
	bool "Enable DSI 20nm PHY driver in MSM DRM"
	depends on DRM_MSM_DSI
	default y
	help
	  Choose this option if the 20nm DSI PHY is used on the platform.

config DRM_MSM_DSI_28NM_8960_PHY
	bool "Enable DSI 28nm 8960 PHY driver in MSM DRM"
	depends on DRM_MSM_DSI
	default y
	help
	  Choose this option if the 28nm DSI PHY 8960 variant is used on the
	  platform.

config DRM_MSM_DSI_14NM_PHY
	bool "Enable DSI 14nm PHY driver in MSM DRM (used by MSM8996/APQ8096)"
	depends on DRM_MSM_DSI
	default y
	help
	  Choose this option if DSI PHY on 8996 is used on the platform.

config DRM_MSM_DSI_10NM_PHY
	bool "Enable DSI 10nm PHY driver in MSM DRM (used by SDM845)"
	depends on DRM_MSM_DSI
	default y
	help
	  Choose this option if DSI PHY on SDM845 is used on the platform.
