linux/drivers/gpu/drm/meson
Martin Blumenstingl 7d34b10786 drm/meson: Don't remove bridges which are created by other drivers
[ Upstream commit bd915ae73a ]

Stop calling drm_bridge_remove() for bridges allocated/managed by other
drivers in the remove paths of meson_encoder_{cvbs,dsi,hdmi}.
drm_bridge_remove() unregisters the bridge so it cannot be used
anymore. Doing so for bridges we don't own can lead to the video
pipeline not being able to come up after -EPROBE_DEFER of the VPU
because we're unregistering a bridge that's managed by another driver.
The other driver doesn't know that we have unregistered it's bridge
and on subsequent .probe() we're not able to find those bridges anymore
(since nobody re-creates them).

This fixes probe errors on Meson8b boards with the CVBS outputs enabled.

Fixes: 09847723c1 ("drm/meson: remove drm bridges at aggregate driver unbind time")
Fixes: 42dcf15f90 ("drm/meson: add DSI encoder")
Cc:  <stable@vger.kernel.org>
Reported-by: Steve Morvai <stevemorvai@hotmail.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Steve Morvai <stevemorvai@hotmail.com>
Link: https://lore.kernel.org/r/20240215220442.1343152-1-martin.blumenstingl@googlemail.com
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240215220442.1343152-1-martin.blumenstingl@googlemail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-03-06 14:45:04 +00:00
..
Kconfig drm/gem: rename GEM CMA helpers to GEM DMA helpers 2022-08-03 18:31:49 +02:00
Makefile drm/meson: rename venc_cvbs to encoder_cvbs 2021-11-12 10:10:01 +01:00
meson_crtc.c drm/atomic: Pass the full state to CRTC atomic begin and flush 2020-11-02 12:37:49 +01:00
meson_crtc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
meson_drv.c drm/meson: fix unbind path if HDMI fails to bind 2024-03-06 14:45:04 +00:00
meson_drv.h drm/meson: remove drm bridges at aggregate driver unbind time 2022-09-23 09:45:49 +00:00
meson_dw_hdmi.c drm/meson: encoder_hdmi: switch to bridge DRM_BRIDGE_ATTACH_NO_CONNECTOR 2021-11-12 10:10:01 +01:00
meson_dw_hdmi.h drm: meson: global clean-up 2019-08-09 12:06:14 +02:00
meson_encoder_cvbs.c drm/meson: Don't remove bridges which are created by other drivers 2024-03-06 14:45:04 +00:00
meson_encoder_cvbs.h drm/meson: remove drm bridges at aggregate driver unbind time 2022-09-23 09:45:49 +00:00
meson_encoder_hdmi.c drm/meson: Don't remove bridges which are created by other drivers 2024-03-06 14:45:04 +00:00
meson_encoder_hdmi.h drm/meson: remove drm bridges at aggregate driver unbind time 2022-09-23 09:45:49 +00:00
meson_osd_afbcd.c drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops 2022-01-03 12:28:25 +01:00
meson_osd_afbcd.h drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops 2022-01-03 12:28:25 +01:00
meson_overlay.c drm/gem: rename struct drm_gem_dma_object.{paddr => dma_addr} 2022-08-03 18:32:27 +02:00
meson_overlay.h drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_plane.c drm pull for 6.1-rc1 2022-10-05 11:24:12 -07:00
meson_plane.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
meson_rdma.c drm: meson: fix address type confusion 2020-01-08 13:51:56 +01:00
meson_rdma.h drm/meson: add RDMA module driver 2019-12-10 10:08:45 +01:00
meson_registers.h drm/meson: fix colour distortion from HDR set during vendor u-boot 2021-08-10 10:00:02 +02:00
meson_vclk.c drm/meson/meson_vclk: Make two local functions static 2020-11-17 18:34:14 +01:00
meson_vclk.h drm/meson: add mode selection limits against specific SoC revisions 2020-05-05 10:19:33 +02:00
meson_venc.c drm/meson: Fix few typo 2021-03-19 10:40:54 +01:00
meson_venc.h drm/meson: venc: add support for YUV420 setup 2020-03-10 10:51:24 +01:00
meson_viu.c drm/meson: Reduce the FIFO lines held when AFBC is not used 2023-01-12 12:02:22 +01:00
meson_viu.h drm/meson: viu: add AFBC modules routing functions 2019-12-10 10:09:38 +01:00
meson_vpp.c drm/meson: fix 1px pink line on GXM when scaling video overlay 2023-03-22 13:33:39 +01:00
meson_vpp.h drm/meson: drop use of drmP.h 2019-07-17 12:47:57 +02:00