
config DRM_MSM
	tristate "MSM DRM"
	depends on DRM
	depends on ARCH_QCOM || (ARM && COMPILE_TEST)
	depends on OF && COMMON_CLK
	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
	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.

