2019-05-19 12:07:45 +00: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 16:44:06 +00:00
|
|
|
|
|
|
|
config DRM_MSM
|
|
|
|
tristate "MSM DRM"
|
|
|
|
depends on DRM
|
2021-09-23 12:47:57 +00:00
|
|
|
depends on ARCH_QCOM || SOC_IMX5 || COMPILE_TEST
|
2021-10-13 14:42:56 +00:00
|
|
|
depends on COMMON_CLK
|
2020-12-03 23:13:38 +00:00
|
|
|
depends on IOMMU_SUPPORT
|
2019-08-23 12:16:36 +00:00
|
|
|
depends on QCOM_OCMEM || QCOM_OCMEM=n
|
2021-06-02 21:52:51 +00:00
|
|
|
depends on QCOM_LLCC || QCOM_LLCC=n
|
|
|
|
depends on QCOM_COMMAND_DB || QCOM_COMMAND_DB=n
|
2020-08-17 22:01:39 +00:00
|
|
|
select IOMMU_IO_PGTABLE
|
2017-07-26 15:52:44 +00:00
|
|
|
select QCOM_MDT_LOADER if ARCH_QCOM
|
2014-10-31 16:19:40 +00: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 16:44:06 +00:00
|
|
|
select DRM_KMS_HELPER
|
2014-08-01 17:08:11 +00:00
|
|
|
select DRM_PANEL
|
2021-09-20 22:57:58 +00:00
|
|
|
select DRM_BRIDGE
|
|
|
|
select DRM_PANEL_BRIDGE
|
2021-07-28 01:06:14 +00:00
|
|
|
select DRM_SCHED
|
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 16:44:06 +00:00
|
|
|
select SHMEM
|
|
|
|
select TMPFS
|
2021-09-28 07:50:27 +00:00
|
|
|
select QCOM_SCM
|
2018-07-24 16:33:27 +00:00
|
|
|
select WANT_DEV_COREDUMP
|
2016-06-10 09:45:56 +00:00
|
|
|
select SND_SOC_HDMI_CODEC if SND_SOC
|
2016-06-16 20:08:19 +00:00
|
|
|
select SYNC_FILE
|
2017-05-02 16:39:53 +00:00
|
|
|
select PM_OPP
|
2021-04-05 13:47:13 +00:00
|
|
|
select NVMEM
|
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 16:44:06 +00:00
|
|
|
help
|
|
|
|
DRM/KMS driver for MSM/snapdragon.
|
|
|
|
|
2019-04-10 16:58:16 +00: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 16:44:06 +00: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-03-31 18:36:33 +00:00
|
|
|
|
2017-12-13 20:12:57 +00: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 14:16:29 +00:00
|
|
|
config DRM_MSM_HDMI_HDCP
|
|
|
|
bool "Enable HDMI HDCP support in MSM DRM driver"
|
2021-09-28 07:50:27 +00:00
|
|
|
depends on DRM_MSM
|
2016-03-20 14:16:29 +00:00
|
|
|
default y
|
|
|
|
help
|
|
|
|
Choose this option to enable HDCP state machine
|
|
|
|
|
2020-08-27 21:16:55 +00:00
|
|
|
config DRM_MSM_DP
|
|
|
|
bool "Enable DisplayPort support in MSM DRM driver"
|
|
|
|
depends on DRM_MSM
|
2020-08-27 21:16:56 +00:00
|
|
|
default y
|
2020-08-27 21:16:55 +00:00
|
|
|
help
|
|
|
|
Compile in support for DP driver in MSM DRM driver. DP external
|
|
|
|
display support is enabled through this config option. It can
|
|
|
|
be primary or secondary display on device.
|
|
|
|
|
2015-03-31 18:36:33 +00: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-08-13 21:45:53 +00: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 06:30:34 +00: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 14:15:43 +00: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 06:05:25 +00: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.
|
2020-09-11 15:09:39 +00:00
|
|
|
|
|
|
|
config DRM_MSM_DSI_7NM_PHY
|
2021-06-22 12:42:27 +00:00
|
|
|
bool "Enable DSI 7nm PHY driver in MSM DRM"
|
2020-09-11 15:09:39 +00:00
|
|
|
depends on DRM_MSM_DSI
|
|
|
|
default y
|
|
|
|
help
|
2021-06-22 12:42:27 +00:00
|
|
|
Choose this option if DSI PHY on SM8150/SM8250/SC7280 is used on
|
|
|
|
the platform.
|