In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time.
Signed-off-by: Marek Vasut <[email protected]> --- Note that this is similar to e.g. commit 6ef7ee48765f ("drm/bridge: sn65dsi83: Register and attach our DSI device at probe") and pretty much what every other DSI-to-DPI bridge does. --- Cc: Andrzej Hajda <[email protected]> Cc: David Airlie <[email protected]> Cc: Jernej Skrabec <[email protected]> Cc: Jonas Karlman <[email protected]> Cc: Laurent Pinchart <[email protected]> Cc: Maarten Lankhorst <[email protected]> Cc: Maxime Ripard <[email protected]> Cc: Neil Armstrong <[email protected]> Cc: Robert Foss <[email protected]> Cc: Simona Vetter <[email protected]> Cc: Thomas Zimmermann <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] --- drivers/gpu/drm/bridge/waveshare-dsi.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/gpu/drm/bridge/waveshare-dsi.c b/drivers/gpu/drm/bridge/waveshare-dsi.c index 43f4e7412d722..9254446f54958 100644 --- a/drivers/gpu/drm/bridge/waveshare-dsi.c +++ b/drivers/gpu/drm/bridge/waveshare-dsi.c @@ -80,11 +80,6 @@ static int ws_bridge_bridge_attach(struct drm_bridge *bridge, enum drm_bridge_attach_flags flags) { struct ws_bridge *ws = bridge_to_ws_bridge(bridge); - int ret; - - ret = ws_bridge_attach_dsi(ws); - if (ret) - return ret; return drm_bridge_attach(encoder, ws->next_bridge, &ws->bridge, flags); @@ -179,7 +174,7 @@ static int ws_bridge_probe(struct i2c_client *i2c) ws->bridge.of_node = dev->of_node; devm_drm_bridge_add(dev, &ws->bridge); - return 0; + return ws_bridge_attach_dsi(ws); } static const struct of_device_id ws_bridge_of_ids[] = { -- 2.51.0
