On Wed, Nov 24, 2021 at 12:02:47AM +0530, Jagan Teki wrote:
> > > > > > + dsi->panel = of_drm_find_panel(remote);
> > > > > > + if (IS_ERR(dsi->panel)) {
> > > > > > + dsi->panel = NULL;
> > > > > > +
> > > > > > + dsi->next_bridge = of_drm_find_bridge(remote);
> > > > > > + if (IS_ERR(dsi->next_bridge)) {
> > > > > > + dev_err(dsi->dev, "failed to find bridge\n");
> > > > > > + return PTR_ERR(dsi->next_bridge);
> > > > > > + }
> > > > > > + } else {
> > > > > > + dsi->next_bridge = NULL;
> > > > > > + }
> > > > > > +
> > > > > > + of_node_put(remote);
> > > > >
> > > > > Using devm_drm_of_get_bridge would greatly simplify the driver
> > > >
> > > > I'm aware of this and this would break the existing sunxi dsi binding,
> > > > we are not using ports based pipeline in dsi node. Of-course you have
> > > > pointed the same before, please check below
> > > > https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/
> > >
> > > Then drm_of_find_panel_or_bridge needs to be adjusted to handle the DSI
> > > bindings and look for a panel or bridge not only through the OF graph,
> > > but also on the child nodes
> >
> > Okay. I need to check this.
>
> devm_drm_of_get_bridge is not working with legacy binding like the one
> used in sun6i dsiThere's nothing legacy about it. > https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ > > dsi->next_bridge = devm_drm_of_get_bridge(dsi->dev, dsi->dev->of_node, 0, 0); > if (IS_ERR(dsi->next_bridge)) > return PTR_ERR(dsi->next_bridge); > > It is only working if we have ports on the pipeline, something like this > https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ > > Please have a look and let me know if I miss anything? Yes, you're missing the answer you quoted earlier: > > > Then drm_of_find_panel_or_bridge needs to be adjusted to handle the DSI > > > bindings and look for a panel or bridge not only through the OF graph, > > > but also on the child nodes Maxime
signature.asc
Description: PGP signature
