Commit 110ed472 authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-misc-next-fixes-2024-05-08' of...

Merge tag 'drm-misc-next-fixes-2024-05-08' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next

drm-misc-next-fixes for v6.10-rc1:
- panthor fixes.
- Reverting Kconfig changes, and moving drm options to submenu.
- Hide physical fb address in fb helper.
- zynqmp bridge fix.
- Revert broken ti-sn65dsi83 fix.
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/fe630414-d13e-4052-86f3-ce3155eb3e44@linux.intel.com
parents c815e4e7 be3f3042
...@@ -29,6 +29,8 @@ menuconfig DRM ...@@ -29,6 +29,8 @@ menuconfig DRM
details. You should also select and configure AGP details. You should also select and configure AGP
(/dev/agpgart) support if it is available for your platform. (/dev/agpgart) support if it is available for your platform.
if DRM
config DRM_MIPI_DBI config DRM_MIPI_DBI
tristate tristate
depends on DRM depends on DRM
...@@ -74,12 +76,10 @@ config DRM_KUNIT_TEST_HELPERS ...@@ -74,12 +76,10 @@ config DRM_KUNIT_TEST_HELPERS
config DRM_KUNIT_TEST config DRM_KUNIT_TEST
tristate "KUnit tests for DRM" if !KUNIT_ALL_TESTS tristate "KUnit tests for DRM" if !KUNIT_ALL_TESTS
depends on DRM depends on DRM && KUNIT && MMU
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on KUNIT
depends on MMU
select DRM_BUDDY select DRM_BUDDY
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_EXEC select DRM_EXEC
select DRM_EXPORT_FOR_TESTS if m select DRM_EXPORT_FOR_TESTS if m
select DRM_GEM_SHMEM_HELPER select DRM_GEM_SHMEM_HELPER
...@@ -439,10 +439,6 @@ config DRM_HYPERV ...@@ -439,10 +439,6 @@ config DRM_HYPERV
config DRM_EXPORT_FOR_TESTS config DRM_EXPORT_FOR_TESTS
bool bool
# Separate option because drm_panel_orientation_quirks.c is shared with fbdev
config DRM_PANEL_ORIENTATION_QUIRKS
tristate
config DRM_LIB_RANDOM config DRM_LIB_RANDOM
bool bool
default n default n
...@@ -463,3 +459,9 @@ config DRM_WERROR ...@@ -463,3 +459,9 @@ config DRM_WERROR
this config option is disabled by default. this config option is disabled by default.
If in doubt, say N. If in doubt, say N.
endif
# Separate option because drm_panel_orientation_quirks.c is shared with fbdev
config DRM_PANEL_ORIENTATION_QUIRKS
tristate
...@@ -2,15 +2,13 @@ ...@@ -2,15 +2,13 @@
config DRM_AMDGPU config DRM_AMDGPU
tristate "AMD GPU" tristate "AMD GPU"
depends on DRM depends on DRM && PCI && MMU
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HDCP_HELPER
depends on DRM_DISPLAY_HDMI_HELPER
depends on DRM_DISPLAY_HELPER
depends on MMU
depends on PCI
depends on !UML depends on !UML
select FW_LOADER select FW_LOADER
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HDMI_HELPER
select DRM_DISPLAY_HDCP_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_SCHED select DRM_SCHED
select DRM_TTM select DRM_TTM
......
...@@ -92,11 +92,11 @@ config DRM_FSL_LDB ...@@ -92,11 +92,11 @@ config DRM_FSL_LDB
config DRM_ITE_IT6505 config DRM_ITE_IT6505
tristate "ITE IT6505 DisplayPort bridge" tristate "ITE IT6505 DisplayPort bridge"
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HDCP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HDCP_HELPER
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_AUX_BUS
select DRM_KMS_HELPER select DRM_KMS_HELPER
select EXTCON select EXTCON
select CRYPTO select CRYPTO
...@@ -232,10 +232,10 @@ config DRM_PARADE_PS8622 ...@@ -232,10 +232,10 @@ config DRM_PARADE_PS8622
config DRM_PARADE_PS8640 config DRM_PARADE_PS8640
tristate "Parade PS8640 MIPI DSI to eDP Converter" tristate "Parade PS8640 MIPI DSI to eDP Converter"
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_AUX_BUS
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_MIPI_DSI select DRM_MIPI_DSI
select DRM_PANEL select DRM_PANEL
...@@ -319,9 +319,9 @@ config DRM_TOSHIBA_TC358764 ...@@ -319,9 +319,9 @@ config DRM_TOSHIBA_TC358764
config DRM_TOSHIBA_TC358767 config DRM_TOSHIBA_TC358767
tristate "Toshiba TC358767 eDP bridge" tristate "Toshiba TC358767 eDP bridge"
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select REGMAP_I2C select REGMAP_I2C
select DRM_MIPI_DSI select DRM_MIPI_DSI
...@@ -342,9 +342,9 @@ config DRM_TOSHIBA_TC358768 ...@@ -342,9 +342,9 @@ config DRM_TOSHIBA_TC358768
config DRM_TOSHIBA_TC358775 config DRM_TOSHIBA_TC358775
tristate "Toshiba TC358775 DSI/LVDS bridge" tristate "Toshiba TC358775 DSI/LVDS bridge"
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select REGMAP_I2C select REGMAP_I2C
select DRM_PANEL select DRM_PANEL
...@@ -387,15 +387,15 @@ config DRM_TI_SN65DSI83 ...@@ -387,15 +387,15 @@ config DRM_TI_SN65DSI83
config DRM_TI_SN65DSI86 config DRM_TI_SN65DSI86
tristate "TI SN65DSI86 DSI to eDP bridge" tristate "TI SN65DSI86 DSI to eDP bridge"
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select REGMAP_I2C select REGMAP_I2C
select DRM_PANEL select DRM_PANEL
select DRM_MIPI_DSI select DRM_MIPI_DSI
select AUXILIARY_BUS select AUXILIARY_BUS
select DRM_DISPLAY_DP_AUX_BUS
help help
Texas Instruments SN65DSI86 DSI to eDP Bridge driver Texas Instruments SN65DSI86 DSI to eDP Bridge driver
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_ANALOGIX_ANX6345 config DRM_ANALOGIX_ANX6345
tristate "Analogix ANX6345 bridge" tristate "Analogix ANX6345 bridge"
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
select DRM_ANALOGIX_DP select DRM_ANALOGIX_DP
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select REGMAP_I2C select REGMAP_I2C
help help
...@@ -15,9 +15,9 @@ config DRM_ANALOGIX_ANX6345 ...@@ -15,9 +15,9 @@ config DRM_ANALOGIX_ANX6345
config DRM_ANALOGIX_ANX78XX config DRM_ANALOGIX_ANX78XX
tristate "Analogix ANX78XX bridge" tristate "Analogix ANX78XX bridge"
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
select DRM_ANALOGIX_DP select DRM_ANALOGIX_DP
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select REGMAP_I2C select REGMAP_I2C
help help
...@@ -28,16 +28,16 @@ config DRM_ANALOGIX_ANX78XX ...@@ -28,16 +28,16 @@ config DRM_ANALOGIX_ANX78XX
config DRM_ANALOGIX_DP config DRM_ANALOGIX_DP
tristate tristate
depends on DRM_DISPLAY_HELPER depends on DRM
config DRM_ANALOGIX_ANX7625 config DRM_ANALOGIX_ANX7625
tristate "Analogix Anx7625 MIPI to DP interface support" tristate "Analogix Anx7625 MIPI to DP interface support"
depends on DRM depends on DRM
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HDCP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HDCP_HELPER
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_AUX_BUS
select DRM_MIPI_DSI select DRM_MIPI_DSI
help help
ANX7625 is an ultra-low power 4K mobile HD transmitter ANX7625 is an ultra-low power 4K mobile HD transmitter
......
...@@ -23,12 +23,12 @@ endif ...@@ -23,12 +23,12 @@ endif
config DRM_CDNS_MHDP8546 config DRM_CDNS_MHDP8546
tristate "Cadence DPI/DP bridge" tristate "Cadence DPI/DP bridge"
depends on DRM_DISPLAY_DP_HELPER select DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HDCP_HELPER select DRM_DISPLAY_HDCP_HELPER
depends on DRM_DISPLAY_HELPER select DRM_DISPLAY_HELPER
depends on OF
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_PANEL_BRIDGE select DRM_PANEL_BRIDGE
depends on OF
help help
Support Cadence DPI to DP bridge. This is an internal Support Cadence DPI to DP bridge. This is an internal
bridge and is meant to be directly embedded in a SoC. bridge and is meant to be directly embedded in a SoC.
......
...@@ -5,9 +5,9 @@ config DRM_IMX_LDB_HELPER ...@@ -5,9 +5,9 @@ config DRM_IMX_LDB_HELPER
config DRM_IMX8MP_DW_HDMI_BRIDGE config DRM_IMX8MP_DW_HDMI_BRIDGE
tristate "Freescale i.MX8MP HDMI-TX bridge support" tristate "Freescale i.MX8MP HDMI-TX bridge support"
depends on COMMON_CLK
depends on DRM_DW_HDMI
depends on OF depends on OF
depends on COMMON_CLK
select DRM_DW_HDMI
imply DRM_IMX8MP_HDMI_PVI imply DRM_IMX8MP_HDMI_PVI
imply PHY_FSL_SAMSUNG_HDMI_PHY imply PHY_FSL_SAMSUNG_HDMI_PHY
help help
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_DW_HDMI config DRM_DW_HDMI
tristate "Synopsys Designware HDMI TX Controller" tristate
depends on DRM_DISPLAY_HDMI_HELPER select DRM_DISPLAY_HDMI_HELPER
depends on DRM_DISPLAY_HELPER select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select REGMAP_MMIO select REGMAP_MMIO
select CEC_CORE if CEC_NOTIFIER select CEC_CORE if CEC_NOTIFIER
......
...@@ -478,7 +478,6 @@ static void sn65dsi83_atomic_pre_enable(struct drm_bridge *bridge, ...@@ -478,7 +478,6 @@ static void sn65dsi83_atomic_pre_enable(struct drm_bridge *bridge,
dev_err(ctx->dev, "failed to lock PLL, ret=%i\n", ret); dev_err(ctx->dev, "failed to lock PLL, ret=%i\n", ret);
/* On failure, disable PLL again and exit. */ /* On failure, disable PLL again and exit. */
regmap_write(ctx->regmap, REG_RC_PLL_EN, 0x00); regmap_write(ctx->regmap, REG_RC_PLL_EN, 0x00);
regulator_disable(ctx->vcc);
return; return;
} }
......
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
config DRM_DISPLAY_HELPER config DRM_DISPLAY_HELPER
tristate "DRM Display Helpers" tristate
depends on DRM depends on DRM
default y
help help
DRM helpers for display adapters. DRM helpers for display adapters.
config DRM_DISPLAY_DP_AUX_BUS config DRM_DISPLAY_DP_AUX_BUS
tristate "DRM DisplayPort AUX bus support" tristate
depends on DRM depends on DRM
depends on OF || COMPILE_TEST depends on OF || COMPILE_TEST
default y
config DRM_DISPLAY_DP_AUX_CEC config DRM_DISPLAY_DP_AUX_CEC
bool "Enable DisplayPort CEC-Tunneling-over-AUX HDMI support" bool "Enable DisplayPort CEC-Tunneling-over-AUX HDMI support"
depends on DRM depends on DRM && DRM_DISPLAY_HELPER
depends on DRM_DISPLAY_HELPER select DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_DP_HELPER
select CEC_CORE select CEC_CORE
help help
Choose this option if you want to enable HDMI CEC support for Choose this option if you want to enable HDMI CEC support for
...@@ -27,26 +24,23 @@ config DRM_DISPLAY_DP_AUX_CEC ...@@ -27,26 +24,23 @@ config DRM_DISPLAY_DP_AUX_CEC
that do support this they often do not hook up the CEC pin. that do support this they often do not hook up the CEC pin.
config DRM_DISPLAY_DP_AUX_CHARDEV config DRM_DISPLAY_DP_AUX_CHARDEV
bool "DRM DisplayPort AUX Interface" bool "DRM DP AUX Interface"
depends on DRM depends on DRM && DRM_DISPLAY_HELPER
depends on DRM_DISPLAY_HELPER select DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_DP_HELPER
help help
Choose this option to enable a /dev/drm_dp_auxN node that allows to Choose this option to enable a /dev/drm_dp_auxN node that allows to
read and write values to arbitrary DPCD registers on the DP aux read and write values to arbitrary DPCD registers on the DP aux
channel. channel.
config DRM_DISPLAY_DP_HELPER config DRM_DISPLAY_DP_HELPER
bool "DRM DisplayPort Helpers" bool
depends on DRM_DISPLAY_HELPER depends on DRM_DISPLAY_HELPER
select DRM_KMS_HELPER
default y
help help
DRM display helpers for DisplayPort. DRM display helpers for DisplayPort.
config DRM_DISPLAY_DP_TUNNEL config DRM_DISPLAY_DP_TUNNEL
bool "DRM DisplayPort tunnels support" bool
depends on DRM_DISPLAY_DP_HELPER select DRM_DISPLAY_DP_HELPER
help help
Enable support for DisplayPort tunnels. This allows drivers to use Enable support for DisplayPort tunnels. This allows drivers to use
DP tunnel features like the Bandwidth Allocation mode to maximize the DP tunnel features like the Bandwidth Allocation mode to maximize the
...@@ -66,15 +60,13 @@ config DRM_DISPLAY_DP_TUNNEL_STATE_DEBUG ...@@ -66,15 +60,13 @@ config DRM_DISPLAY_DP_TUNNEL_STATE_DEBUG
If in doubt, say "N". If in doubt, say "N".
config DRM_DISPLAY_HDCP_HELPER config DRM_DISPLAY_HDCP_HELPER
bool "DRM HDCD Helpers" bool
depends on DRM_DISPLAY_HELPER depends on DRM_DISPLAY_HELPER
default y
help help
DRM display helpers for HDCP. DRM display helpers for HDCP.
config DRM_DISPLAY_HDMI_HELPER config DRM_DISPLAY_HDMI_HELPER
bool "DRM HDMI Helpers" bool
depends on DRM_DISPLAY_HELPER depends on DRM_DISPLAY_HELPER
default y
help help
DRM display helpers for HDMI. DRM display helpers for HDMI.
...@@ -167,6 +167,9 @@ int drm_fb_dma_get_scanout_buffer(struct drm_plane *plane, ...@@ -167,6 +167,9 @@ int drm_fb_dma_get_scanout_buffer(struct drm_plane *plane,
struct drm_gem_dma_object *dma_obj; struct drm_gem_dma_object *dma_obj;
struct drm_framebuffer *fb; struct drm_framebuffer *fb;
if (!plane->state || !plane->state->fb)
return -EINVAL;
fb = plane->state->fb; fb = plane->state->fb;
/* Only support linear modifier */ /* Only support linear modifier */
if (fb->modifier != DRM_FORMAT_MOD_LINEAR) if (fb->modifier != DRM_FORMAT_MOD_LINEAR)
......
...@@ -113,7 +113,6 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, ...@@ -113,7 +113,6 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper,
/* screen */ /* screen */
info->flags |= FBINFO_VIRTFB | FBINFO_READS_FAST; info->flags |= FBINFO_VIRTFB | FBINFO_READS_FAST;
info->screen_buffer = screen_buffer; info->screen_buffer = screen_buffer;
info->fix.smem_start = page_to_phys(vmalloc_to_page(info->screen_buffer));
info->fix.smem_len = screen_size; info->fix.smem_len = screen_size;
/* deferred I/O */ /* deferred I/O */
......
...@@ -4,6 +4,7 @@ config DRM_EXYNOS ...@@ -4,6 +4,7 @@ config DRM_EXYNOS
depends on OF && DRM && COMMON_CLK depends on OF && DRM && COMMON_CLK
depends on ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST depends on ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
depends on MMU depends on MMU
select DRM_DISPLAY_HELPER if DRM_EXYNOS_DP
select DRM_KMS_HELPER select DRM_KMS_HELPER
select VIDEOMODE_HELPERS select VIDEOMODE_HELPERS
select FB_DMAMEM_HELPERS if DRM_FBDEV_EMULATION select FB_DMAMEM_HELPERS if DRM_FBDEV_EMULATION
...@@ -67,9 +68,8 @@ config DRM_EXYNOS_DSI ...@@ -67,9 +68,8 @@ config DRM_EXYNOS_DSI
config DRM_EXYNOS_DP config DRM_EXYNOS_DP
bool "Exynos specific extensions for Analogix DP driver" bool "Exynos specific extensions for Analogix DP driver"
depends on DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON depends on DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER=y || (DRM_DISPLAY_HELPER=m && DRM_EXYNOS=m)
select DRM_ANALOGIX_DP select DRM_ANALOGIX_DP
select DRM_DISPLAY_DP_HELPER
default DRM_EXYNOS default DRM_EXYNOS
select DRM_PANEL select DRM_PANEL
help help
......
...@@ -2,10 +2,6 @@ ...@@ -2,10 +2,6 @@
config DRM_I915 config DRM_I915
tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics" tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics"
depends on DRM depends on DRM
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HDCP_HELPER
depends on DRM_DISPLAY_HDMI_HELPER
depends on DRM_DISPLAY_HELPER
depends on X86 && PCI depends on X86 && PCI
depends on !PREEMPT_RT depends on !PREEMPT_RT
select INTEL_GTT if X86 select INTEL_GTT if X86
...@@ -14,6 +10,10 @@ config DRM_I915 ...@@ -14,6 +10,10 @@ config DRM_I915
# the shmem_readpage() which depends upon tmpfs # the shmem_readpage() which depends upon tmpfs
select SHMEM select SHMEM
select TMPFS select TMPFS
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HDCP_HELPER
select DRM_DISPLAY_HDMI_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_PANEL select DRM_PANEL
select DRM_MIPI_DSI select DRM_MIPI_DSI
......
...@@ -35,8 +35,7 @@ config DRM_IMX_LDB ...@@ -35,8 +35,7 @@ config DRM_IMX_LDB
config DRM_IMX_HDMI config DRM_IMX_HDMI
tristate "Freescale i.MX DRM HDMI" tristate "Freescale i.MX DRM HDMI"
depends on DRM_DW_HDMI select DRM_DW_HDMI
depends on DRM_IMX depends on DRM_IMX && OF
depends on OF
help help
Choose this if you want to use HDMI on i.MX6. Choose this if you want to use HDMI on i.MX6.
...@@ -27,8 +27,8 @@ config DRM_INGENIC_IPU ...@@ -27,8 +27,8 @@ config DRM_INGENIC_IPU
config DRM_INGENIC_DW_HDMI config DRM_INGENIC_DW_HDMI
tristate "Ingenic specific support for Synopsys DW HDMI" tristate "Ingenic specific support for Synopsys DW HDMI"
depends on DRM_DW_HDMI
depends on MACH_JZ4780 depends on MACH_JZ4780
select DRM_DW_HDMI
help help
Choose this option to enable Synopsys DesignWare HDMI based driver. Choose this option to enable Synopsys DesignWare HDMI based driver.
If you want to enable HDMI on Ingenic JZ4780 based SoC, you should If you want to enable HDMI on Ingenic JZ4780 based SoC, you should
......
...@@ -22,11 +22,11 @@ config DRM_MEDIATEK ...@@ -22,11 +22,11 @@ config DRM_MEDIATEK
config DRM_MEDIATEK_DP config DRM_MEDIATEK_DP
tristate "DRM DPTX Support for MediaTek SoCs" tristate "DRM DPTX Support for MediaTek SoCs"
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on DRM_MEDIATEK depends on DRM_MEDIATEK
select PHY_MTK_DP select PHY_MTK_DP
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_DP_AUX_BUS
help help
DRM/KMS Display Port driver for MediaTek SoCs. DRM/KMS Display Port driver for MediaTek SoCs.
......
...@@ -13,9 +13,9 @@ config DRM_MESON ...@@ -13,9 +13,9 @@ config DRM_MESON
config DRM_MESON_DW_HDMI config DRM_MESON_DW_HDMI
tristate "HDMI Synopsys Controller support for Amlogic Meson Display" tristate "HDMI Synopsys Controller support for Amlogic Meson Display"
depends on DRM_DW_HDMI
depends on DRM_MESON depends on DRM_MESON
default y if DRM_MESON default y if DRM_MESON
select DRM_DW_HDMI
imply DRM_DW_HDMI_I2S_AUDIO imply DRM_DW_HDMI_I2S_AUDIO
config DRM_MESON_DW_MIPI_DSI config DRM_MESON_DW_MIPI_DSI
......
...@@ -2,12 +2,9 @@ ...@@ -2,12 +2,9 @@
config DRM_MSM config DRM_MSM
tristate "MSM DRM" tristate "MSM DRM"
depends on DRM
depends on ARCH_QCOM || SOC_IMX5 || COMPILE_TEST depends on ARCH_QCOM || SOC_IMX5 || COMPILE_TEST
depends on COMMON_CLK depends on COMMON_CLK
depends on DRM
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on IOMMU_SUPPORT depends on IOMMU_SUPPORT
depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
depends on QCOM_OCMEM || QCOM_OCMEM=n depends on QCOM_OCMEM || QCOM_OCMEM=n
...@@ -17,6 +14,9 @@ config DRM_MSM ...@@ -17,6 +14,9 @@ config DRM_MSM
select IOMMU_IO_PGTABLE select IOMMU_IO_PGTABLE
select QCOM_MDT_LOADER if ARCH_QCOM select QCOM_MDT_LOADER if ARCH_QCOM
select REGULATOR select REGULATOR
select DRM_DISPLAY_DP_AUX_BUS
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_EXEC select DRM_EXEC
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_PANEL select DRM_PANEL
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_NOUVEAU config DRM_NOUVEAU
tristate "Nouveau (NVIDIA) cards" tristate "Nouveau (NVIDIA) cards"
depends on DRM depends on DRM && PCI && MMU
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HDMI_HELPER
depends on DRM_DISPLAY_HELPER
depends on PCI
depends on MMU
select IOMMU_API select IOMMU_API
select FW_LOADER select FW_LOADER
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HDMI_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_TTM select DRM_TTM
select DRM_TTM_HELPER select DRM_TTM_HELPER
......
...@@ -544,11 +544,11 @@ config DRM_PANEL_RAYDIUM_RM68200 ...@@ -544,11 +544,11 @@ config DRM_PANEL_RAYDIUM_RM68200
config DRM_PANEL_RAYDIUM_RM692E5 config DRM_PANEL_RAYDIUM_RM692E5
tristate "Raydium RM692E5-based DSI panel" tristate "Raydium RM692E5-based DSI panel"
depends on BACKLIGHT_CLASS_DEVICE
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on DRM_MIPI_DSI
depends on OF depends on OF
depends on DRM_MIPI_DSI
depends on BACKLIGHT_CLASS_DEVICE
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
help help
Say Y here if you want to enable support for Raydium RM692E5-based Say Y here if you want to enable support for Raydium RM692E5-based
display panels, such as the one found in the Fairphone 5 smartphone. display panels, such as the one found in the Fairphone 5 smartphone.
...@@ -582,12 +582,12 @@ config DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 ...@@ -582,12 +582,12 @@ config DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01
config DRM_PANEL_SAMSUNG_ATNA33XC20 config DRM_PANEL_SAMSUNG_ATNA33XC20
tristate "Samsung ATNA33XC20 eDP panel" tristate "Samsung ATNA33XC20 eDP panel"
depends on BACKLIGHT_CLASS_DEVICE
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
depends on BACKLIGHT_CLASS_DEVICE
depends on PM depends on PM
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_AUX_BUS
help help
DRM panel driver for the Samsung ATNA33XC20 panel. This panel can't DRM panel driver for the Samsung ATNA33XC20 panel. This panel can't
be handled by the DRM_PANEL_SIMPLE driver because its power be handled by the DRM_PANEL_SIMPLE driver because its power
...@@ -822,13 +822,13 @@ config DRM_PANEL_STARTEK_KD070FHFID015 ...@@ -822,13 +822,13 @@ config DRM_PANEL_STARTEK_KD070FHFID015
config DRM_PANEL_EDP config DRM_PANEL_EDP
tristate "support for simple Embedded DisplayPort panels" tristate "support for simple Embedded DisplayPort panels"
depends on BACKLIGHT_CLASS_DEVICE
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
depends on BACKLIGHT_CLASS_DEVICE
depends on PM depends on PM
select VIDEOMODE_HELPERS select VIDEOMODE_HELPERS
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_AUX_BUS
select DRM_KMS_HELPER select DRM_KMS_HELPER
help help
DRM panel driver for dumb eDP panels that need at most a regulator and DRM panel driver for dumb eDP panels that need at most a regulator and
...@@ -902,11 +902,11 @@ config DRM_PANEL_TRULY_NT35597_WQXGA ...@@ -902,11 +902,11 @@ config DRM_PANEL_TRULY_NT35597_WQXGA
config DRM_PANEL_VISIONOX_R66451 config DRM_PANEL_VISIONOX_R66451
tristate "Visionox R66451" tristate "Visionox R66451"
depends on BACKLIGHT_CLASS_DEVICE
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on DRM_MIPI_DSI
depends on OF depends on OF
depends on DRM_MIPI_DSI
depends on BACKLIGHT_CLASS_DEVICE
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
help help
Say Y here if you want to enable support for Visionox Say Y here if you want to enable support for Visionox
R66451 1080x2340 AMOLED DSI panel. R66451 1080x2340 AMOLED DSI panel.
......
...@@ -1083,10 +1083,11 @@ int panthor_fw_post_reset(struct panthor_device *ptdev) ...@@ -1083,10 +1083,11 @@ int panthor_fw_post_reset(struct panthor_device *ptdev)
if (!ret) if (!ret)
goto out; goto out;
/* Force a disable, so we get a fresh boot on the next /* Forcibly reset the MCU and force a slow reset, so we get a
* panthor_fw_start() call. * fresh boot on the next panthor_fw_start() call.
*/ */
gpu_write(ptdev, MCU_CONTROL, MCU_CONTROL_DISABLE); panthor_fw_stop(ptdev);
ptdev->fw->fast_reset = false;
drm_err(&ptdev->base, "FW fast reset failed, trying a slow reset"); drm_err(&ptdev->base, "FW fast reset failed, trying a slow reset");
} }
......
...@@ -490,6 +490,18 @@ enum panthor_group_state { ...@@ -490,6 +490,18 @@ enum panthor_group_state {
* Can no longer be scheduled. The only allowed action is a destruction. * Can no longer be scheduled. The only allowed action is a destruction.
*/ */
PANTHOR_CS_GROUP_TERMINATED, PANTHOR_CS_GROUP_TERMINATED,
/**
* @PANTHOR_CS_GROUP_UNKNOWN_STATE: Group is an unknown state.
*
* The FW returned an inconsistent state. The group is flagged unusable
* and can no longer be scheduled. The only allowed action is a
* destruction.
*
* When that happens, we also schedule a FW reset, to start from a fresh
* state.
*/
PANTHOR_CS_GROUP_UNKNOWN_STATE,
}; };
/** /**
...@@ -1127,6 +1139,7 @@ csg_slot_sync_state_locked(struct panthor_device *ptdev, u32 csg_id) ...@@ -1127,6 +1139,7 @@ csg_slot_sync_state_locked(struct panthor_device *ptdev, u32 csg_id)
struct panthor_fw_csg_iface *csg_iface; struct panthor_fw_csg_iface *csg_iface;
struct panthor_group *group; struct panthor_group *group;
enum panthor_group_state new_state, old_state; enum panthor_group_state new_state, old_state;
u32 csg_state;
lockdep_assert_held(&ptdev->scheduler->lock); lockdep_assert_held(&ptdev->scheduler->lock);
...@@ -1137,7 +1150,8 @@ csg_slot_sync_state_locked(struct panthor_device *ptdev, u32 csg_id) ...@@ -1137,7 +1150,8 @@ csg_slot_sync_state_locked(struct panthor_device *ptdev, u32 csg_id)
return; return;
old_state = group->state; old_state = group->state;
switch (csg_iface->output->ack & CSG_STATE_MASK) { csg_state = csg_iface->output->ack & CSG_STATE_MASK;
switch (csg_state) {
case CSG_STATE_START: case CSG_STATE_START:
case CSG_STATE_RESUME: case CSG_STATE_RESUME:
new_state = PANTHOR_CS_GROUP_ACTIVE; new_state = PANTHOR_CS_GROUP_ACTIVE;
...@@ -1148,11 +1162,28 @@ csg_slot_sync_state_locked(struct panthor_device *ptdev, u32 csg_id) ...@@ -1148,11 +1162,28 @@ csg_slot_sync_state_locked(struct panthor_device *ptdev, u32 csg_id)
case CSG_STATE_SUSPEND: case CSG_STATE_SUSPEND:
new_state = PANTHOR_CS_GROUP_SUSPENDED; new_state = PANTHOR_CS_GROUP_SUSPENDED;
break; break;
default:
/* The unknown state might be caused by a FW state corruption,
* which means the group metadata can't be trusted anymore, and
* the SUSPEND operation might propagate the corruption to the
* suspend buffers. Flag the group state as unknown to make
* sure it's unusable after that point.
*/
drm_err(&ptdev->base, "Invalid state on CSG %d (state=%d)",
csg_id, csg_state);
new_state = PANTHOR_CS_GROUP_UNKNOWN_STATE;
break;
} }
if (old_state == new_state) if (old_state == new_state)
return; return;
/* The unknown state might be caused by a FW issue, reset the FW to
* take a fresh start.
*/
if (new_state == PANTHOR_CS_GROUP_UNKNOWN_STATE)
panthor_device_schedule_reset(ptdev);
if (new_state == PANTHOR_CS_GROUP_SUSPENDED) if (new_state == PANTHOR_CS_GROUP_SUSPENDED)
csg_slot_sync_queues_state_locked(ptdev, csg_id); csg_slot_sync_queues_state_locked(ptdev, csg_id);
...@@ -1783,6 +1814,7 @@ static bool ...@@ -1783,6 +1814,7 @@ static bool
group_can_run(struct panthor_group *group) group_can_run(struct panthor_group *group)
{ {
return group->state != PANTHOR_CS_GROUP_TERMINATED && return group->state != PANTHOR_CS_GROUP_TERMINATED &&
group->state != PANTHOR_CS_GROUP_UNKNOWN_STATE &&
!group->destroyed && group->fatal_queues == 0 && !group->destroyed && group->fatal_queues == 0 &&
!group->timedout; !group->timedout;
} }
...@@ -2546,8 +2578,8 @@ void panthor_sched_suspend(struct panthor_device *ptdev) ...@@ -2546,8 +2578,8 @@ void panthor_sched_suspend(struct panthor_device *ptdev)
{ {
struct panthor_scheduler *sched = ptdev->scheduler; struct panthor_scheduler *sched = ptdev->scheduler;
struct panthor_csg_slots_upd_ctx upd_ctx; struct panthor_csg_slots_upd_ctx upd_ctx;
u32 suspended_slots, faulty_slots;
struct panthor_group *group; struct panthor_group *group;
u32 suspended_slots;
u32 i; u32 i;
mutex_lock(&sched->lock); mutex_lock(&sched->lock);
...@@ -2557,7 +2589,8 @@ void panthor_sched_suspend(struct panthor_device *ptdev) ...@@ -2557,7 +2589,8 @@ void panthor_sched_suspend(struct panthor_device *ptdev)
if (csg_slot->group) { if (csg_slot->group) {
csgs_upd_ctx_queue_reqs(ptdev, &upd_ctx, i, csgs_upd_ctx_queue_reqs(ptdev, &upd_ctx, i,
CSG_STATE_SUSPEND, group_can_run(csg_slot->group) ?
CSG_STATE_SUSPEND : CSG_STATE_TERMINATE,
CSG_STATE_MASK); CSG_STATE_MASK);
} }
} }
...@@ -2566,10 +2599,9 @@ void panthor_sched_suspend(struct panthor_device *ptdev) ...@@ -2566,10 +2599,9 @@ void panthor_sched_suspend(struct panthor_device *ptdev)
csgs_upd_ctx_apply_locked(ptdev, &upd_ctx); csgs_upd_ctx_apply_locked(ptdev, &upd_ctx);
suspended_slots &= ~upd_ctx.timedout_mask; suspended_slots &= ~upd_ctx.timedout_mask;
faulty_slots = upd_ctx.timedout_mask;
if (faulty_slots) { if (upd_ctx.timedout_mask) {
u32 slot_mask = faulty_slots; u32 slot_mask = upd_ctx.timedout_mask;
drm_err(&ptdev->base, "CSG suspend failed, escalating to termination"); drm_err(&ptdev->base, "CSG suspend failed, escalating to termination");
csgs_upd_ctx_init(&upd_ctx); csgs_upd_ctx_init(&upd_ctx);
...@@ -2620,9 +2652,6 @@ void panthor_sched_suspend(struct panthor_device *ptdev) ...@@ -2620,9 +2652,6 @@ void panthor_sched_suspend(struct panthor_device *ptdev)
slot_mask &= ~BIT(csg_id); slot_mask &= ~BIT(csg_id);
} }
if (flush_caches_failed)
faulty_slots |= suspended_slots;
} }
for (i = 0; i < sched->csg_slot_count; i++) { for (i = 0; i < sched->csg_slot_count; i++) {
......
...@@ -2,13 +2,11 @@ ...@@ -2,13 +2,11 @@
config DRM_RADEON config DRM_RADEON
tristate "ATI Radeon" tristate "ATI Radeon"
depends on DRM && PCI && MMU
depends on AGP || !AGP depends on AGP || !AGP
depends on DRM
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on PCI
depends on MMU
select FW_LOADER select FW_LOADER
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_SUBALLOC_HELPER select DRM_SUBALLOC_HELPER
select DRM_TTM select DRM_TTM
......
...@@ -25,8 +25,8 @@ config DRM_RCAR_CMM ...@@ -25,8 +25,8 @@ config DRM_RCAR_CMM
config DRM_RCAR_DW_HDMI config DRM_RCAR_DW_HDMI
tristate "R-Car Gen3 and RZ/G2 DU HDMI Encoder Support" tristate "R-Car Gen3 and RZ/G2 DU HDMI Encoder Support"
depends on DRM && OF depends on DRM && OF
depends on DRM_DW_HDMI
depends on DRM_RCAR_DU || COMPILE_TEST depends on DRM_RCAR_DU || COMPILE_TEST
select DRM_DW_HDMI
help help
Enable support for R-Car Gen3 or RZ/G2 internal HDMI encoder. Enable support for R-Car Gen3 or RZ/G2 internal HDMI encoder.
......
...@@ -7,6 +7,7 @@ config DRM_ROCKCHIP ...@@ -7,6 +7,7 @@ config DRM_ROCKCHIP
select DRM_PANEL select DRM_PANEL
select VIDEOMODE_HELPERS select VIDEOMODE_HELPERS
select DRM_ANALOGIX_DP if ROCKCHIP_ANALOGIX_DP select DRM_ANALOGIX_DP if ROCKCHIP_ANALOGIX_DP
select DRM_DW_HDMI if ROCKCHIP_DW_HDMI
select DRM_DW_MIPI_DSI if ROCKCHIP_DW_MIPI_DSI select DRM_DW_MIPI_DSI if ROCKCHIP_DW_MIPI_DSI
select GENERIC_PHY if ROCKCHIP_DW_MIPI_DSI select GENERIC_PHY if ROCKCHIP_DW_MIPI_DSI
select GENERIC_PHY_MIPI_DPHY if ROCKCHIP_DW_MIPI_DSI select GENERIC_PHY_MIPI_DPHY if ROCKCHIP_DW_MIPI_DSI
...@@ -35,9 +36,9 @@ config ROCKCHIP_VOP2 ...@@ -35,9 +36,9 @@ config ROCKCHIP_VOP2
config ROCKCHIP_ANALOGIX_DP config ROCKCHIP_ANALOGIX_DP
bool "Rockchip specific extensions for Analogix DP driver" bool "Rockchip specific extensions for Analogix DP driver"
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER=y || (DRM_DISPLAY_HELPER=m && DRM_ROCKCHIP=m)
depends on ROCKCHIP_VOP depends on ROCKCHIP_VOP
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_HELPER
help help
This selects support for Rockchip SoC specific extensions This selects support for Rockchip SoC specific extensions
for the Analogix Core DP driver. If you want to enable DP for the Analogix Core DP driver. If you want to enable DP
...@@ -45,9 +46,9 @@ config ROCKCHIP_ANALOGIX_DP ...@@ -45,9 +46,9 @@ config ROCKCHIP_ANALOGIX_DP
config ROCKCHIP_CDN_DP config ROCKCHIP_CDN_DP
bool "Rockchip cdn DP" bool "Rockchip cdn DP"
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER=y || (DRM_DISPLAY_HELPER=m && DRM_ROCKCHIP=m)
depends on EXTCON=y || (EXTCON=m && DRM_ROCKCHIP=m) depends on EXTCON=y || (EXTCON=m && DRM_ROCKCHIP=m)
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_HELPER
help help
This selects support for Rockchip SoC specific extensions This selects support for Rockchip SoC specific extensions
for the cdn DP driver. If you want to enable Dp on for the cdn DP driver. If you want to enable Dp on
...@@ -56,7 +57,6 @@ config ROCKCHIP_CDN_DP ...@@ -56,7 +57,6 @@ config ROCKCHIP_CDN_DP
config ROCKCHIP_DW_HDMI config ROCKCHIP_DW_HDMI
bool "Rockchip specific extensions for Synopsys DW HDMI" bool "Rockchip specific extensions for Synopsys DW HDMI"
depends on DRM_DW_HDMI
help help
This selects support for Rockchip SoC specific extensions This selects support for Rockchip SoC specific extensions
for the Synopsys DesignWare HDMI driver. If you want to for the Synopsys DesignWare HDMI driver. If you want to
......
...@@ -57,8 +57,8 @@ config DRM_SUN6I_DSI ...@@ -57,8 +57,8 @@ config DRM_SUN6I_DSI
config DRM_SUN8I_DW_HDMI config DRM_SUN8I_DW_HDMI
tristate "Support for Allwinner version of DesignWare HDMI" tristate "Support for Allwinner version of DesignWare HDMI"
depends on DRM_SUN4I depends on DRM_SUN4I
depends on DRM_DW_HDMI
default DRM_SUN4I default DRM_SUN4I
select DRM_DW_HDMI
help help
Choose this option if you have an Allwinner SoC with the Choose this option if you have an Allwinner SoC with the
DesignWare HDMI controller. SoCs that support HDMI and DesignWare HDMI controller. SoCs that support HDMI and
......
...@@ -4,11 +4,11 @@ config DRM_TEGRA ...@@ -4,11 +4,11 @@ config DRM_TEGRA
depends on ARCH_TEGRA || COMPILE_TEST depends on ARCH_TEGRA || COMPILE_TEST
depends on COMMON_CLK depends on COMMON_CLK
depends on DRM depends on DRM
depends on DRM_DISPLAY_DP_AUX_BUS
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HDMI_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF depends on OF
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HDMI_HELPER
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_AUX_BUS
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_MIPI_DSI select DRM_MIPI_DSI
select DRM_PANEL select DRM_PANEL
......
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
config DRM_VC4 config DRM_VC4
tristate "Broadcom VC4 Graphics" tristate "Broadcom VC4 Graphics"
depends on ARCH_BCM || ARCH_BCM2835 || COMPILE_TEST depends on ARCH_BCM || ARCH_BCM2835 || COMPILE_TEST
depends on COMMON_CLK
depends on DRM
depends on DRM_DISPLAY_HDMI_HELPER
depends on DRM_DISPLAY_HELPER
depends on PM
# Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only # Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only
# happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE. # happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE.
depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE) depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
depends on DRM
depends on SND && SND_SOC depends on SND && SND_SOC
depends on COMMON_CLK
depends on PM
select DRM_DISPLAY_HDMI_HELPER
select DRM_DISPLAY_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_GEM_DMA_HELPER select DRM_GEM_DMA_HELPER
select DRM_PANEL_BRIDGE select DRM_PANEL_BRIDGE
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_XE config DRM_XE
tristate "Intel Xe Graphics" tristate "Intel Xe Graphics"
depends on (m || (y && KUNIT=y)) depends on DRM && PCI && MMU && (m || (y && KUNIT=y))
depends on DRM
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HDCP_HELPER
depends on DRM_DISPLAY_HDMI_HELPER
depends on DRM_DISPLAY_HELPER
depends on MMU
depends on PCI
select INTERVAL_TREE select INTERVAL_TREE
# we need shmfs for the swappable backing store, and in particular # we need shmfs for the swappable backing store, and in particular
# the shmem_readpage() which depends upon tmpfs # the shmem_readpage() which depends upon tmpfs
...@@ -20,6 +13,10 @@ config DRM_XE ...@@ -20,6 +13,10 @@ config DRM_XE
select DRM_KUNIT_TEST_HELPERS if DRM_XE_KUNIT_TEST != n select DRM_KUNIT_TEST_HELPERS if DRM_XE_KUNIT_TEST != n
select DRM_PANEL select DRM_PANEL
select DRM_SUBALLOC_HELPER select DRM_SUBALLOC_HELPER
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HDCP_HELPER
select DRM_DISPLAY_HDMI_HELPER
select DRM_DISPLAY_HELPER
select DRM_MIPI_DSI select DRM_MIPI_DSI
select RELAY select RELAY
select IRQ_WORK select IRQ_WORK
......
config DRM_ZYNQMP_DPSUB config DRM_ZYNQMP_DPSUB
tristate "ZynqMP DisplayPort Controller Driver" tristate "ZynqMP DisplayPort Controller Driver"
depends on ARCH_ZYNQMP || COMPILE_TEST depends on ARCH_ZYNQMP || COMPILE_TEST
depends on COMMON_CLK depends on COMMON_CLK && DRM && OF
depends on DMADEVICES depends on DMADEVICES
depends on DRM
depends on DRM_DISPLAY_DP_HELPER
depends on DRM_DISPLAY_HELPER
depends on OF
depends on PHY_XILINX_ZYNQMP depends on PHY_XILINX_ZYNQMP
depends on XILINX_ZYNQMP_DPDMA depends on XILINX_ZYNQMP_DPDMA
select DMA_ENGINE select DMA_ENGINE
select DRM_DISPLAY_DP_HELPER
select DRM_DISPLAY_HELPER
select DRM_GEM_DMA_HELPER select DRM_GEM_DMA_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select GENERIC_PHY select GENERIC_PHY
......
...@@ -256,12 +256,12 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev) ...@@ -256,12 +256,12 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev)
if (ret) if (ret)
goto err_dp; goto err_dp;
drm_bridge_add(dpsub->bridge);
if (dpsub->dma_enabled) { if (dpsub->dma_enabled) {
ret = zynqmp_dpsub_drm_init(dpsub); ret = zynqmp_dpsub_drm_init(dpsub);
if (ret) if (ret)
goto err_disp; goto err_disp;
} else {
drm_bridge_add(dpsub->bridge);
} }
dev_info(&pdev->dev, "ZynqMP DisplayPort Subsystem driver probed"); dev_info(&pdev->dev, "ZynqMP DisplayPort Subsystem driver probed");
...@@ -288,9 +288,8 @@ static void zynqmp_dpsub_remove(struct platform_device *pdev) ...@@ -288,9 +288,8 @@ static void zynqmp_dpsub_remove(struct platform_device *pdev)
if (dpsub->drm) if (dpsub->drm)
zynqmp_dpsub_drm_cleanup(dpsub); zynqmp_dpsub_drm_cleanup(dpsub);
else
drm_bridge_remove(dpsub->bridge);
drm_bridge_remove(dpsub->bridge);
zynqmp_disp_remove(dpsub); zynqmp_disp_remove(dpsub);
zynqmp_dp_remove(dpsub); zynqmp_dp_remove(dpsub);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment