2019-05-19 19:07:45 +07:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
drm/msm: basic KMS driver for snapdragon
The snapdragon chips have multiple different display controllers,
depending on which chip variant/version. (As far as I can tell, current
devices have either MDP3 or MDP4, and upcoming devices have MDSS.) And
then external to the display controller are HDMI, DSI, etc. blocks which
may be shared across devices which have different display controller
blocks.
To more easily add support for different display controller blocks, the
display controller specific bits are split out into a "kms" module,
which provides the kms plane/crtc/encoder objects.
The external HDMI, DSI, etc. blocks are part encoder, and part connector
currently. But I think I will pull in the drm_bridge patches from
chromeos tree, and split them into a bridge+connector, with the
registers that need to be set in modeset handled by the bridge. This
would remove the 'msm_connector' base class. But some things need to be
double checked to make sure I could get the correct ON/OFF sequencing..
This patch adds support for mdp4 crtc (including hw cursor), dtv encoder
(part of MDP4 block), and hdmi.
Signed-off-by: Rob Clark <robdclark@gmail.com>
2013-06-26 23:44:06 +07:00
|
|
|
|
|
|
|
config DRM_MSM
|
|
|
|
tristate "MSM DRM"
|
|
|
|
depends on DRM
|
2018-12-04 22:16:58 +07:00
|
|
|
depends on ARCH_QCOM || SOC_IMX5 || (ARM && COMPILE_TEST)
|
2015-01-28 20:48:09 +07:00
|
|
|
depends on OF && COMMON_CLK
|
2017-01-11 20:33:35 +07:00
|
|
|
depends on MMU
|
2019-02-12 16:52:38 +07:00
|
|
|
depends on INTERCONNECT || !INTERCONNECT
|
2019-08-23 19:16:36 +07:00
|
|
|
depends on QCOM_OCMEM || QCOM_OCMEM=n
|
2017-07-26 22:52:44 +07:00
|
|
|
select QCOM_MDT_LOADER if ARCH_QCOM
|
2014-10-31 23:19:40 +07:00
|
|
|
select REGULATOR
|
drm/msm: basic KMS driver for snapdragon
The snapdragon chips have multiple different display controllers,
depending on which chip variant/version. (As far as I can tell, current
devices have either MDP3 or MDP4, and upcoming devices have MDSS.) And
then external to the display controller are HDMI, DSI, etc. blocks which
may be shared across devices which have different display controller
blocks.
To more easily add support for different display controller blocks, the
display controller specific bits are split out into a "kms" module,
which provides the kms plane/crtc/encoder objects.
The external HDMI, DSI, etc. blocks are part encoder, and part connector
currently. But I think I will pull in the drm_bridge patches from
chromeos tree, and split them into a bridge+connector, with the
registers that need to be set in modeset handled by the bridge. This
would remove the 'msm_connector' base class. But some things need to be
double checked to make sure I could get the correct ON/OFF sequencing..
This patch adds support for mdp4 crtc (including hw cursor), dtv encoder
(part of MDP4 block), and hdmi.
Signed-off-by: Rob Clark <robdclark@gmail.com>
2013-06-26 23:44:06 +07:00
|
|
|
select DRM_KMS_HELPER
|
2014-08-02 00:08:11 +07:00
|
|
|
select DRM_PANEL
|
drm/msm: basic KMS driver for snapdragon
The snapdragon chips have multiple different display controllers,
depending on which chip variant/version. (As far as I can tell, current
devices have either MDP3 or MDP4, and upcoming devices have MDSS.) And
then external to the display controller are HDMI, DSI, etc. blocks which
may be shared across devices which have different display controller
blocks.
To more easily add support for different display controller blocks, the
display controller specific bits are split out into a "kms" module,
which provides the kms plane/crtc/encoder objects.
The external HDMI, DSI, etc. blocks are part encoder, and part connector
currently. But I think I will pull in the drm_bridge patches from
chromeos tree, and split them into a bridge+connector, with the
registers that need to be set in modeset handled by the bridge. This
would remove the 'msm_connector' base class. But some things need to be
double checked to make sure I could get the correct ON/OFF sequencing..
This patch adds support for mdp4 crtc (including hw cursor), dtv encoder
(part of MDP4 block), and hdmi.
Signed-off-by: Rob Clark <robdclark@gmail.com>
2013-06-26 23:44:06 +07:00
|
|
|
select SHMEM
|
|
|
|
select TMPFS
|
2018-12-04 22:16:58 +07:00
|
|
|
select QCOM_SCM if ARCH_QCOM
|
2019-08-13 21:46:24 +07:00
|
|
|
select QCOM_COMMAND_DB if ARCH_QCOM
|
2018-07-24 23:33:27 +07:00
|
|
|
select WANT_DEV_COREDUMP
|
2016-06-10 16:45:56 +07:00
|
|
|
select SND_SOC_HDMI_CODEC if SND_SOC
|
2016-06-17 03:08:19 +07:00
|
|
|
select SYNC_FILE
|
2017-05-02 23:39:53 +07:00
|
|
|
select PM_OPP
|
drm/msm: basic KMS driver for snapdragon
The snapdragon chips have multiple different display controllers,
depending on which chip variant/version. (As far as I can tell, current
devices have either MDP3 or MDP4, and upcoming devices have MDSS.) And
then external to the display controller are HDMI, DSI, etc. blocks which
may be shared across devices which have different display controller
blocks.
To more easily add support for different display controller blocks, the
display controller specific bits are split out into a "kms" module,
which provides the kms plane/crtc/encoder objects.
The external HDMI, DSI, etc. blocks are part encoder, and part connector
currently. But I think I will pull in the drm_bridge patches from
chromeos tree, and split them into a bridge+connector, with the
registers that need to be set in modeset handled by the bridge. This
would remove the 'msm_connector' base class. But some things need to be
double checked to make sure I could get the correct ON/OFF sequencing..
This patch adds support for mdp4 crtc (including hw cursor), dtv encoder
(part of MDP4 block), and hdmi.
Signed-off-by: Rob Clark <robdclark@gmail.com>
2013-06-26 23:44:06 +07:00
|
|
|
help
|
|
|
|
DRM/KMS driver for MSM/snapdragon.
|
|
|
|
|
2019-04-10 23:58:16 +07:00
|
|
|
config DRM_MSM_GPU_STATE
|
|
|
|
bool
|
|
|
|
depends on DRM_MSM && (DEBUG_FS || DEV_COREDUMP)
|
|
|
|
default y
|
|
|
|
|
drm/msm: basic KMS driver for snapdragon
The snapdragon chips have multiple different display controllers,
depending on which chip variant/version. (As far as I can tell, current
devices have either MDP3 or MDP4, and upcoming devices have MDSS.) And
then external to the display controller are HDMI, DSI, etc. blocks which
may be shared across devices which have different display controller
blocks.
To more easily add support for different display controller blocks, the
display controller specific bits are split out into a "kms" module,
which provides the kms plane/crtc/encoder objects.
The external HDMI, DSI, etc. blocks are part encoder, and part connector
currently. But I think I will pull in the drm_bridge patches from
chromeos tree, and split them into a bridge+connector, with the
registers that need to be set in modeset handled by the bridge. This
would remove the 'msm_connector' base class. But some things need to be
double checked to make sure I could get the correct ON/OFF sequencing..
This patch adds support for mdp4 crtc (including hw cursor), dtv encoder
(part of MDP4 block), and hdmi.
Signed-off-by: Rob Clark <robdclark@gmail.com>
2013-06-26 23:44:06 +07:00
|
|
|
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.
|
2015-04-01 01:36:33 +07:00
|
|
|
|
2017-12-14 03:12:57 +07:00
|
|
|
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.
|
|
|
|
|
2016-03-20 21:16:29 +07:00
|
|
|
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
|
|
|
|
|
2015-04-01 01:36:33 +07:00
|
|
|
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.
|
|
|
|
|
2015-05-16 00:04:04 +07:00
|
|
|
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.
|
2015-08-14 04:45:53 +07:00
|
|
|
|
|
|
|
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.
|
2015-10-14 13:30:34 +07:00
|
|
|
|
|
|
|
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.
|
2017-01-03 21:15:43 +07:00
|
|
|
|
|
|
|
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.
|
2018-01-17 13:05:25 +07:00
|
|
|
|
|
|
|
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.
|