OpenCloudOS-Kernel/drivers/gpu/drm/vc4
Maxime Ripard 37b254f111
drm/vc4: dsi: Only register our component once a DSI device is attached
If the DSI driver is the last to probe, component_add will try to run all
the bind callbacks straight away and return the error code.

However, since we depend on a power domain, we're pretty much guaranteed to
be in that case on the BCM2711, and are just lucky on the previous SoCs
since the v3d also depends on that power domain and is further in the probe
order.

In that case, the DSI host will not stick around in the system: the DSI
bind callback will be executed, will not find any DSI device attached and
will return EPROBE_DEFER, and we will then remove the DSI host and ask to
be probed later on.

But since that host doesn't stick around, DSI devices like the RaspberryPi
touchscreen whose probe is not linked to the DSI host (unlike the usual DSI
devices that will be probed through the call to mipi_dsi_host_register)
cannot attach to the DSI host, and we thus end up in a situation where the
DSI host cannot probe because the panel hasn't probed yet, and the panel
cannot probe because the DSI host hasn't yet.

In order to break this cycle, let's wait until there's a DSI device that
attaches to the DSI host to register the component and allow to progress
further.

Acked-by: Eric Anholt <eric@anholt.net>
Suggested-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20200707101912.571531-1-maxime@cerno.tech
2020-10-22 16:49:43 +02:00
..
Kconfig drm/vc4: Fix Kconfig indentation 2019-11-25 10:04:41 +01:00
Makefile drm/vc4: hdmi: Add PHY init and disable function 2020-09-07 18:06:04 +02:00
vc4_bo.c drm/vc4: Introduce GEM object functions 2020-09-25 09:21:27 +02:00
vc4_crtc.c drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
vc4_debugfs.c drm: convert .debugfs_init() hook to return void. 2020-03-18 17:53:28 +01:00
vc4_dpi.c drm/vc4: Use simple encoder 2020-04-02 14:16:45 +02:00
vc4_drv.c drm/vc4: Introduce GEM object functions 2020-09-25 09:21:27 +02:00
vc4_drv.h drm/vc4: Introduce GEM object functions 2020-09-25 09:21:27 +02:00
vc4_dsi.c drm/vc4: dsi: Only register our component once a DSI device is attached 2020-10-22 16:49:43 +02:00
vc4_fence.c drm/vc4: Remove unecessary dma_fence_ops 2018-07-03 13:14:10 +02:00
vc4_gem.c drm/vc4: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:35 +01:00
vc4_hdmi.c drm/vc4: hdmi: Fix NULL vs IS_ERR() checks in vc5_hdmi_init_resources() 2020-09-10 12:15:57 +02:00
vc4_hdmi.h drm/vc4: hdmi: Support the BCM2711 HDMI controllers 2020-09-07 18:14:54 +02:00
vc4_hdmi_phy.c drm/vc4: hdmi: Support the BCM2711 HDMI controllers 2020-09-07 18:14:54 +02:00
vc4_hdmi_regs.h drm/vc4: Update type of reg parameter in vc4_hdmi_{read,write} 2020-09-11 11:30:16 +02:00
vc4_hvs.c drm/vc4: hvs: Introduce a function to get the assigned FIFO 2020-09-07 18:04:26 +02:00
vc4_irq.c drm/vc4: Allocate binner bo when starting to use the V3D 2019-05-23 17:32:21 +02:00
vc4_kms.c drm/vc4: hvs: Pull the state of all the CRTCs prior to PV muxing 2020-09-21 16:43:11 +02:00
vc4_packet.h
vc4_perfmon.c drm/vc4: Disable V3D interactions if the v3d component didn't probe. 2019-04-03 12:49:18 -07:00
vc4_plane.c drm/vc4: Handing the return value of drm_universal_plane_init 2020-09-16 04:48:37 -04:00
vc4_qpu_defines.h
vc4_regs.h drm/vc4: hdmi: Support the BCM2711 HDMI controllers 2020-09-07 18:14:54 +02:00
vc4_render_cl.c drm/vc4: Make sure to emit a tile coordinates between two MSAA loads. 2019-04-01 09:33:38 -07:00
vc4_trace.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
vc4_trace_points.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
vc4_txp.c drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
vc4_v3d.c drm/vc4: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:35 +01:00
vc4_validate.c drm/vc4_validate: Remove VLA usage 2018-03-16 15:51:52 -07:00
vc4_validate_shaders.c drm/vc4: Fix memory leak during BO teardown 2018-04-09 12:42:08 -07:00
vc4_vec.c drm/vc4: Use simple encoder 2020-04-02 14:16:45 +02:00