Use the regular fbdev helpers for framebuffer I/O instead of DRM's helpers. Msm does not use damage handling, so DRM's fbdev helpers are mere wrappers around the fbdev code. By using fbdev helpers directly within each DRM fbdev emulation, we can eventually remove DRM's wrapper functions entirely. Msm's fbdev emulation has been incomplete as it didn't implement damage handling. Partilly fix this by implementing damage handling for write and draw operation. It is still missing for mmaped pages. v4: * use initializer macros for struct fb_ops * partially support damage handling v2: * use FB_SYS_HELPERS option Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Cc: Rob Clark <robdclark@gmail.com> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Cc: Sean Paul <sean@poorly.run> Link: https://patchwork.freedesktop.org/patch/msgid/20230530151228.22979-12-tzimmermann@suse.de
169 lines
4.6 KiB
Plaintext
169 lines
4.6 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
config DRM_MSM
|
|
tristate "MSM DRM"
|
|
depends on DRM
|
|
depends on ARCH_QCOM || SOC_IMX5 || COMPILE_TEST
|
|
depends on COMMON_CLK
|
|
depends on IOMMU_SUPPORT
|
|
depends on QCOM_OCMEM || QCOM_OCMEM=n
|
|
depends on QCOM_LLCC || QCOM_LLCC=n
|
|
depends on QCOM_COMMAND_DB || QCOM_COMMAND_DB=n
|
|
depends on PM
|
|
select IOMMU_IO_PGTABLE
|
|
select QCOM_MDT_LOADER if ARCH_QCOM
|
|
select REGULATOR
|
|
select DRM_DP_AUX_BUS
|
|
select DRM_DISPLAY_DP_HELPER
|
|
select DRM_DISPLAY_HELPER
|
|
select DRM_KMS_HELPER
|
|
select DRM_PANEL
|
|
select DRM_BRIDGE
|
|
select DRM_PANEL_BRIDGE
|
|
select DRM_SCHED
|
|
select FB_SYS_HELPERS if DRM_FBDEV_EMULATION
|
|
select SHMEM
|
|
select TMPFS
|
|
select QCOM_SCM
|
|
select WANT_DEV_COREDUMP
|
|
select SND_SOC_HDMI_CODEC if SND_SOC
|
|
select SYNC_FILE
|
|
select PM_OPP
|
|
select NVMEM
|
|
select PM_GENERIC_DOMAINS
|
|
help
|
|
DRM/KMS driver for MSM/snapdragon.
|
|
|
|
config DRM_MSM_GPU_STATE
|
|
bool
|
|
depends on DRM_MSM && (DEBUG_FS || DEV_COREDUMP)
|
|
default y
|
|
|
|
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.
|
|
|
|
config DRM_MSM_MDSS
|
|
bool
|
|
depends on DRM_MSM
|
|
default n
|
|
|
|
config DRM_MSM_MDP4
|
|
bool "Enable MDP4 support in MSM DRM driver"
|
|
depends on DRM_MSM
|
|
default y
|
|
help
|
|
Compile in support for the Mobile Display Processor v4 (MDP4) in
|
|
the MSM DRM driver. It is the older display controller found in
|
|
devices using APQ8064/MSM8960/MSM8x60 platforms.
|
|
|
|
config DRM_MSM_MDP5
|
|
bool "Enable MDP5 support in MSM DRM driver"
|
|
depends on DRM_MSM
|
|
select DRM_MSM_MDSS
|
|
default y
|
|
help
|
|
Compile in support for the Mobile Display Processor v5 (MDP5) in
|
|
the MSM DRM driver. It is the display controller found in devices
|
|
using e.g. APQ8016/MSM8916/APQ8096/MSM8996/MSM8974/SDM6x0 platforms.
|
|
|
|
config DRM_MSM_DPU
|
|
bool "Enable DPU support in MSM DRM driver"
|
|
depends on DRM_MSM
|
|
select DRM_MSM_MDSS
|
|
default y
|
|
help
|
|
Compile in support for the Display Processing Unit in
|
|
the MSM DRM driver. It is the display controller found in devices
|
|
using e.g. SDM845 and newer platforms.
|
|
|
|
config DRM_MSM_DP
|
|
bool "Enable DisplayPort support in MSM DRM driver"
|
|
depends on DRM_MSM
|
|
select RATIONAL
|
|
default y
|
|
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.
|
|
|
|
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.
|
|
|
|
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_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.
|
|
|
|
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.
|
|
|
|
config DRM_MSM_DSI_7NM_PHY
|
|
bool "Enable DSI 7nm/5nm/4nm PHY driver in MSM DRM"
|
|
depends on DRM_MSM_DSI
|
|
default y
|
|
help
|
|
Choose this option if DSI PHY on SM8150/SM8250/SM8350/SM8450/SM8550/SC7280
|
|
is used on the platform.
|
|
|
|
config DRM_MSM_HDMI
|
|
bool "Enable HDMI support in MSM DRM driver"
|
|
depends on DRM_MSM
|
|
default y
|
|
help
|
|
Compile in support for the HDMI output MSM DRM driver. It can
|
|
be a primary or a secondary display on device. Note that this is used
|
|
only for the direct HDMI output. If the device outputs HDMI data
|
|
through some kind of DSI-to-HDMI bridge, this option can be disabled.
|
|
|
|
config DRM_MSM_HDMI_HDCP
|
|
bool "Enable HDMI HDCP support in MSM DRM driver"
|
|
depends on DRM_MSM && DRM_MSM_HDMI
|
|
default y
|
|
help
|
|
Choose this option to enable HDCP state machine
|