Hi Stephen, On Tue, Mar 23, 2021 at 12:14:04AM -0700, Stephen Boyd wrote: > Quoting Laurent Pinchart (2021-03-21 20:01:22) > > diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > > index 1d1be791d5ba..c21a7f7d452b 100644 > > --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c > > +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > > @@ -418,8 +420,18 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge, > > } > > pdata->dsi = dsi; > > > > + /* Attach the next bridge */ > > + ret = drm_bridge_attach(bridge->encoder, pdata->next_bridge, > > + &pdata->bridge, flags); > > + if (ret < 0) { > > + DRM_ERROR("failed to attach next bridge\n"); > > Can this be pushed into drm_bridge_attach() instead of in each caller? Good idea. > > + goto err_dsi_detach; > > + } > > + > > return 0; > > > > +err_dsi_detach: > > + mipi_dsi_detach(dsi); > > err_dsi_attach: > > mipi_dsi_device_unregister(dsi); > > err_dsi_host: > > static void ti_sn_bridge_post_disable(struct drm_bridge *bridge) > > @@ -1245,6 +1249,14 @@ static int ti_sn_bridge_probe(struct i2c_client *client, > > return ret; > > } > > > > + pdata->next_bridge = devm_drm_panel_bridge_add(pdata->dev, > > + pdata->panel); > > + if (IS_ERR(pdata->next_bridge)) { > > + DRM_ERROR("failed to create panel bridge\n"); > > + ret = PTR_ERR(pdata->next_bridge); > > + return ret; > > Just return PTR_ERR(pdata->next_bridge)? Indeed. Bad copy and paste. > > + } > > + > > dev_set_drvdata(&client->dev, pdata); -- Regards, Laurent Pinchart