| 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | |
| 3 | config DRM_MSM |
| 4 | tristate "MSM DRM" |
| 5 | depends on DRM |
| 6 | depends on ARCH_QCOM || SOC_IMX5 || COMPILE_TEST |
| 7 | depends on COMMON_CLK |
| 8 | depends on IOMMU_SUPPORT |
| 9 | depends on OF |
| 10 | depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n |
| 11 | depends on QCOM_OCMEM || QCOM_OCMEM=n |
| 12 | depends on QCOM_LLCC || QCOM_LLCC=n |
| 13 | depends on QCOM_COMMAND_DB || QCOM_COMMAND_DB=n |
| 14 | depends on QCOM_SMEM || QCOM_SMEM=n |
| 15 | depends on PM |
| 16 | select IOMMU_IO_PGTABLE |
| 17 | select QCOM_MDT_LOADER if ARCH_QCOM |
| 18 | select REGULATOR |
| 19 | select DRM_EXEC |
| 20 | select DRM_GPUVM |
| 21 | select DRM_SCHED |
| 22 | select SHMEM |
| 23 | select TMPFS |
| 24 | select QCOM_SCM |
| 25 | select QCOM_PAS |
| 26 | select QCOM_UBWC_CONFIG if ARCH_QCOM && QCOM_SMEM |
| 27 | select WANT_DEV_COREDUMP |
| 28 | select SND_SOC_HDMI_CODEC if SND_SOC |
| 29 | select SYNC_FILE |
| 30 | select PM_OPP |
| 31 | select NVMEM |
| 32 | select PM_GENERIC_DOMAINS |
| 33 | select TRACE_GPU_MEM |
| 34 | help |
| 35 | DRM/KMS driver for MSM/snapdragon. |
| 36 | |
| 37 | config DRM_MSM_GPU_STATE |
| 38 | bool |
| 39 | depends on DRM_MSM && (DEBUG_FS || DEV_COREDUMP) |
| 40 | default y |
| 41 | |
| 42 | config DRM_MSM_GPU_SUDO |
| 43 | bool "Enable SUDO flag on submits" |
| 44 | depends on DRM_MSM && EXPERT |
| 45 | default n |
| 46 | help |
| 47 | Enable userspace that has CAP_SYS_RAWIO to submit GPU commands |
| 48 | that are run from RB instead of IB1. This essentially gives |
| 49 | userspace kernel level access, but is useful for firmware |
| 50 | debugging. |
| 51 | |
| 52 | Only use this if you are a driver developer. This should *not* |
| 53 | be enabled for production kernels. If unsure, say N. |
| 54 | |
| 55 | config DRM_MSM_VALIDATE_XML |
| 56 | bool "Validate XML register files against schema" |
| 57 | depends on DRM_MSM && EXPERT |
| 58 | depends on $(success,$(PYTHON3) -c "import lxml") |
| 59 | help |
| 60 | Validate XML files with register definitions against rules-fd schema. |
| 61 | This option is mostly targeting DRM MSM developers. If unsure, say N. |
| 62 | |
| 63 | config DRM_MSM_KMS |
| 64 | def_bool n |
| 65 | depends on DRM_MSM |
| 66 | select DRM_BRIDGE |
| 67 | select DRM_BRIDGE_CONNECTOR |
| 68 | select DRM_CLIENT_SELECTION |
| 69 | select DRM_DISPLAY_HELPER |
| 70 | select DRM_KMS_HELPER |
| 71 | select DRM_PANEL |
| 72 | select DRM_PANEL_BRIDGE |
| 73 | |
| 74 | config DRM_MSM_KMS_FBDEV |
| 75 | def_bool DRM_FBDEV_EMULATION |
| 76 | depends on DRM_MSM_KMS |
| 77 | select FB_SYSMEM_HELPERS |
| 78 | |
| 79 | config DRM_MSM_MDSS |
| 80 | bool |
| 81 | depends on DRM_MSM |
| 82 | default n |
| 83 | |
| 84 | config DRM_MSM_MDP4 |
| 85 | bool "Enable MDP4 support in MSM DRM driver" |
| 86 | depends on DRM_MSM |
| 87 | select DRM_MSM_KMS |
| 88 | default y |
| 89 | help |
| 90 | Compile in support for the Mobile Display Processor v4 (MDP4) in |
| 91 | the MSM DRM driver. It is the older display controller found in |
| 92 | devices using APQ8064/MSM8960/MSM8x60 platforms. |
| 93 | |
| 94 | config DRM_MSM_MDP5 |
| 95 | bool "Enable MDP5 support in MSM DRM driver" |
| 96 | depends on DRM_MSM |
| 97 | select DRM_MSM_MDSS |
| 98 | select DRM_MSM_KMS |
| 99 | default y |
| 100 | help |
| 101 | Compile in support for the Mobile Display Processor v5 (MDP5) in |
| 102 | the MSM DRM driver. It is the display controller found in devices |
| 103 | using e.g. APQ8016/MSM8916/APQ8096/MSM8996/MSM8974/SDM6x0 platforms. |
| 104 | |
| 105 | config DRM_MSM_DPU |
| 106 | bool "Enable DPU support in MSM DRM driver" |
| 107 | depends on DRM_MSM |
| 108 | select DRM_MSM_MDSS |
| 109 | select DRM_MSM_KMS |
| 110 | select DRM_DISPLAY_DSC_HELPER |
| 111 | default y |
| 112 | help |
| 113 | Compile in support for the Display Processing Unit in |
| 114 | the MSM DRM driver. It is the display controller found in devices |
| 115 | using e.g. SDM845 and newer platforms. |
| 116 | |
| 117 | config DRM_MSM_DP |
| 118 | bool "Enable DisplayPort support in MSM DRM driver" |
| 119 | depends on DRM_MSM |
| 120 | depends on DRM_MSM_KMS |
| 121 | select DRM_DISPLAY_HDMI_AUDIO_HELPER |
| 122 | select RATIONAL |
| 123 | select DRM_DISPLAY_DP_AUX_BUS |
| 124 | select DRM_DISPLAY_DP_HELPER |
| 125 | default y |
| 126 | help |
| 127 | Compile in support for DP driver in MSM DRM driver. DP external |
| 128 | display support is enabled through this config option. It can |
| 129 | be primary or secondary display on device. |
| 130 | |
| 131 | config DRM_MSM_DSI |
| 132 | bool "Enable DSI support in MSM DRM driver" |
| 133 | depends on DRM_MSM |
| 134 | depends on DRM_MSM_KMS |
| 135 | select DRM_PANEL |
| 136 | select DRM_MIPI_DSI |
| 137 | select DRM_DISPLAY_DSC_HELPER |
| 138 | default y |
| 139 | help |
| 140 | Choose this option if you have a need for MIPI DSI connector |
| 141 | support. |
| 142 | |
| 143 | config DRM_MSM_DSI_28NM_PHY |
| 144 | bool "Enable DSI 28nm PHY driver in MSM DRM" |
| 145 | depends on DRM_MSM_DSI |
| 146 | default y |
| 147 | help |
| 148 | Choose this option if the 28nm DSI PHY is used on the platform. |
| 149 | |
| 150 | config DRM_MSM_DSI_20NM_PHY |
| 151 | bool "Enable DSI 20nm PHY driver in MSM DRM" |
| 152 | depends on DRM_MSM_DSI |
| 153 | default y |
| 154 | help |
| 155 | Choose this option if the 20nm DSI PHY is used on the platform. |
| 156 | |
| 157 | config DRM_MSM_DSI_28NM_8960_PHY |
| 158 | bool "Enable DSI 28nm 8960 PHY driver in MSM DRM" |
| 159 | depends on DRM_MSM_DSI |
| 160 | default y |
| 161 | help |
| 162 | Choose this option if the 28nm DSI PHY 8960 variant is used on the |
| 163 | platform. |
| 164 | |
| 165 | config DRM_MSM_DSI_14NM_PHY |
| 166 | bool "Enable DSI 14nm PHY driver in MSM DRM (used by MSM8996/APQ8096)" |
| 167 | depends on DRM_MSM_DSI |
| 168 | default y |
| 169 | help |
| 170 | Choose this option if DSI PHY on 8996 is used on the platform. |
| 171 | |
| 172 | config DRM_MSM_DSI_10NM_PHY |
| 173 | bool "Enable DSI 10nm PHY driver in MSM DRM (used by SDM845)" |
| 174 | depends on DRM_MSM_DSI |
| 175 | default y |
| 176 | help |
| 177 | Choose this option if DSI PHY on SDM845 is used on the platform. |
| 178 | |
| 179 | config DRM_MSM_DSI_7NM_PHY |
| 180 | bool "Enable DSI 7nm/5nm/4nm PHY driver in MSM DRM" |
| 181 | depends on DRM_MSM_DSI |
| 182 | default y |
| 183 | help |
| 184 | Choose this option if DSI PHY on SM8150/SM8250/SM8350/SM8450/SM8550/SC7280 |
| 185 | is used on the platform. |
| 186 | |
| 187 | config DRM_MSM_HDMI |
| 188 | bool "Enable HDMI support in MSM DRM driver" |
| 189 | depends on DRM_MSM |
| 190 | depends on DRM_MSM_KMS |
| 191 | default y |
| 192 | select DRM_DISPLAY_HDMI_HELPER |
| 193 | select DRM_DISPLAY_HDMI_STATE_HELPER |
| 194 | help |
| 195 | Compile in support for the HDMI output MSM DRM driver. It can |
| 196 | be a primary or a secondary display on device. Note that this is used |
| 197 | only for the direct HDMI output. If the device outputs HDMI data |
| 198 | through some kind of DSI-to-HDMI bridge, this option can be disabled. |
| 199 | |
| 200 | config DRM_MSM_HDMI_HDCP |
| 201 | bool "Enable HDMI HDCP support in MSM DRM driver" |
| 202 | depends on DRM_MSM && DRM_MSM_HDMI |
| 203 | default y |
| 204 | help |
| 205 | Choose this option to enable HDCP state machine |