linux/drivers/gpu/drm/meson
Martin Blumenstingl d715ee6cbe drm/meson: Don't remove bridges which are created by other drivers
commit bd915ae73a upstream.

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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-03-01 13:34:58 +01:00
..
Kconfig drm/meson: add support for MIPI-DSI transceiver 2023-06-01 16:10:24 +02:00
Makefile drm/meson: add support for MIPI-DSI transceiver 2023-06-01 16:10:24 +02: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: Convert to platform remove callback returning void 2023-06-08 09:04:11 -07:00
meson_drv.h drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
meson_dw_hdmi.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
meson_dw_hdmi.h drm: meson: global clean-up 2019-08-09 12:06:14 +02:00
meson_dw_mipi_dsi.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
meson_dw_mipi_dsi.h drm/meson: add support for MIPI-DSI transceiver 2023-06-01 16:10:24 +02:00
meson_encoder_cvbs.c drm/meson: Don't remove bridges which are created by other drivers 2024-03-01 13:34:58 +01: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_dsi.c drm/meson: Don't remove bridges which are created by other drivers 2024-03-01 13:34:58 +01:00
meson_encoder_dsi.h drm/meson: add DSI encoder 2023-06-01 16:10:23 +02:00
meson_encoder_hdmi.c drm/meson: Don't remove bridges which are created by other drivers 2024-03-01 13:34:58 +01: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: venc: add ENCL encoder setup for MIPI-DSI output 2023-06-01 16:10:22 +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: venc: include linux/bitfield.h 2023-06-02 15:47:52 +02:00
meson_venc.h drm/meson: venc: add ENCL encoder setup for MIPI-DSI output 2023-06-01 16:10:22 +02:00
meson_viu.c drm/meson: Reduce the FIFO lines held when AFBC is not used 2023-01-02 10:58:50 +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-06 09:42:01 +01:00
meson_vpp.h drm/meson: venc: add ENCL encoder setup for MIPI-DSI output 2023-06-01 16:10:22 +02:00