
config DRM_MSM
	tristate "MSM DRM"
	depends on DRM
	depends on ARCH_QCOM || (ARM && COMPILE_TEST)
	depends on OF
	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 HDCP_QSEECOM
	select MSM_EXT_DISPLAY
	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 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
	bool "Enable HDMI support in MSM DRM driver"
	depends on DRM_MSM
	depends on COMMON_CLK
	default n
	help
	  Compile in support for HDMI driver in msm drm
	  driver. HDMI external display support is enabled
	  through this config option. It can be primary or
	  secondary display on device.

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

config DRM_MSM_DSI_STAGING
	bool "Enable new DSI driver support in MSM DRM driver"
	depends on DRM_MSM
	select DRM_PANEL
	select DRM_MIPI_DSI
	default y
	help
	  Choose this option if you need MIPI DSI connector support on MSM
	  which conforms to DRM. MIPI stands for Mobile Industry Processor
	  Interface and DSI stands for Display Serial Interface which powers
	  the primary display of your mobile device.

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_MDP5
	tristate "MSM MDP5 DRM driver"
	depends on DRM_MSM
	default n
	help
	  Choose this option if MSM MDP5 revision support is
	  needed in DRM/KMS. This is not required if sde/mdp4
	  only target enabled. MDP5 supports DSI and HDMI
	  displays.

config DRM_MSM_MDP4
	tristate "MSM MDP4 DRM driver"
	depends on DRM_MSM
	default n
	help
	  Choose this option if MSM MDP4 revision support is needed in DRM/KMS.

config DRM_MSM_HDCP
	tristate "HDCP for MSM DRM"
	depends on DRM_MSM
	default n
	help
	  Chose this option if HDCP supported is needed in DRM/KMS driver.

config DRM_SDE_WB
	bool "Enable Writeback support in SDE DRM"
	depends on DRM_MSM
	default y
	help
	  Choose this option for writeback connector support.

config DRM_SDE_EVTLOG_DEBUG
	bool "Enable event logging in MSM DRM"
	depends on DRM_MSM
	help
          The SDE DRM debugging provides support to enable display debugging
          features to: dump SDE registers during driver errors, panic
          driver during fatal errors and enable some display-driver logging
          into an internal buffer (this avoids logging overhead).

config DRM_SDE_RSC
	bool "Enable sde resource state coordinator(rsc) driver"
	depends on DRM_MSM
	help
          The SDE DRM RSC provides display Resource State Coordinator support
          to vote the ab/ib bandwidth for primary display. Each rsc client
          can vote their active state. Any active request from any client
          avoids the display core power collapse. A client can also register
          for display core power collapse events on rsc.

