Messages in this thread | | | From | Eric Anholt <> | Date | Tue, 7 Jul 2020 09:48:45 -0700 | Subject | Re: [PATCH] drm/vc4: dsi: Only register our component once a DSI device is attached |
| |
On Tue, Jul 7, 2020 at 3:26 AM Maxime Ripard <maxime@cerno.tech> wrote: > > 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. > > Suggested-by: Andrzej Hajda <a.hajda@samsung.com> > Signed-off-by: Maxime Ripard <maxime@cerno.tech>
I feel like I've written this patch before, but I've thankfully forgotten most of my battle with DSI probing. As long as this still lets vc4 probe in the absence of a DSI panel in the DT as well, then this is enthusiastically acked.
| |