On Thu, Nov 25, 2021 at 07:55:41PM +0530, Jagan Teki wrote: > Hi, > > On Thu, Nov 25, 2021 at 7:45 PM Maxime Ripard <[email protected]> wrote: > > > > 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 dsi > > > > There's nothing legacy about it. > > What I'm mean legacy here with current binding used in sun6i-dsi like this. > > &dsi { > vcc-dsi-supply = <®_dcdc1>; /* VCC-DSI */ > status = "okay"; > > panel@0 { > compatible = "bananapi,s070wv20-ct16-icn6211"; > reg = <0>; > reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* > LCD-RST: PL5 */ > enable-gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>; /* > LCD-PWR-EN: PB7 */ > backlight = <&backlight>; > }; > };
Yes, I know, it's the generic DSI binding. It's still not legacy.
> devm_drm_of_get_bridge cannot find the device with above binding and
> able to find the device with below binding.
>
> &dsi {
> vcc-dsi-supply = <®_dcdc1>; /* VCC-DSI */
> status = "okay";
>
> ports {
> #address-cells = <1>;
> #size-cells = <0>;
>
> dsi_out: port@0 {
> reg = <0>;
>
> dsi_out_bridge: endpoint {
> remote-endpoint = <&bridge_out_dsi>;
> };
> };
> };
>
> panel@0 {
> compatible = "bananapi,s070wv20-ct16-icn6211";
> reg = <0>;
> reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* LCD-RST: PL5 */
> enable-gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>; /* LCD-PWR-EN: PB7 */
> backlight = <&backlight>;
>
> port {
> bridge_out_dsi: endpoint {
> remote-endpoint = <&dsi_out_bridge>;
> };
> };
> };
> };
Yes, I know, and that's because ...
> >
> > > 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:
>
> Yes, I'm trying to resolve the comment one after another. Will get back.
... You've ignored that comment.
Maxime
signature.asc
Description: PGP signature
