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

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_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.
