All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jagan Teki <jagan@amarulasolutions.com>
To: Maxime Ripard <maxime@cerno.tech>
Cc: Neil Armstrong <narmstrong@baylibre.com>,
	Robert Foss <robert.foss@linaro.org>,
	linux-sunxi@googlegroups.com, dri-devel@lists.freedesktop.org,
	Chen-Yu Tsai <wens@csie.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Sam Ravnborg <sam@ravnborg.org>,
	linux-amarula@amarulasolutions.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 3/7] drm: sun4i: dsi: Convert to bridge driver
Date: Thu, 25 Nov 2021 21:44:14 +0530	[thread overview]
Message-ID: <CAMty3ZBT9ZgwUs3g+5kjcp2DcWryA02YADAS_Kt8-EGe85VSZg@mail.gmail.com> (raw)
In-Reply-To: <20211125161026.ndfygaa6c4nnst4i@gilmour>

On Thu, Nov 25, 2021 at 9:40 PM Maxime Ripard <maxime@cerno.tech> wrote:
>
> 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 <maxime@cerno.tech> 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/20210322140152.101709-2-jagan@amarulasolutions.com/
> > > > > >
> > > > > > 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 = <&reg_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 = <&reg_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 ...

Okay. I will use find panel and bridge separately instead of
devm_drm_of_get_bridge in version patches.

>
> > >
> > > > https://patchwork.kernel.org/project/dri-devel/patch/20211122065223.88059-6-jagan@amarulasolutions.com/
> > > >
> > > > 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/20210214194102.126146-8-jagan@amarulasolutions.com/
> > > >
> > > > 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.

Not understand which comment you mean. There are few about bridge
conversion details, I will send my comments.

Thanks,
Jagan.

WARNING: multiple messages have this Message-ID (diff)
From: Jagan Teki <jagan@amarulasolutions.com>
To: Maxime Ripard <maxime@cerno.tech>
Cc: Chen-Yu Tsai <wens@csie.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	 Neil Armstrong <narmstrong@baylibre.com>,
	Robert Foss <robert.foss@linaro.org>,
	Sam Ravnborg <sam@ravnborg.org>,
	dri-devel@lists.freedesktop.org,
	 linux-arm-kernel@lists.infradead.org,
	linux-sunxi@googlegroups.com,
	 linux-amarula@amarulasolutions.com
Subject: Re: [PATCH v5 3/7] drm: sun4i: dsi: Convert to bridge driver
Date: Thu, 25 Nov 2021 21:44:14 +0530	[thread overview]
Message-ID: <CAMty3ZBT9ZgwUs3g+5kjcp2DcWryA02YADAS_Kt8-EGe85VSZg@mail.gmail.com> (raw)
In-Reply-To: <20211125161026.ndfygaa6c4nnst4i@gilmour>

On Thu, Nov 25, 2021 at 9:40 PM Maxime Ripard <maxime@cerno.tech> wrote:
>
> 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 <maxime@cerno.tech> 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/20210322140152.101709-2-jagan@amarulasolutions.com/
> > > > > >
> > > > > > 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 = <&reg_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 = <&reg_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 ...

Okay. I will use find panel and bridge separately instead of
devm_drm_of_get_bridge in version patches.

>
> > >
> > > > https://patchwork.kernel.org/project/dri-devel/patch/20211122065223.88059-6-jagan@amarulasolutions.com/
> > > >
> > > > 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/20210214194102.126146-8-jagan@amarulasolutions.com/
> > > >
> > > > 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.

Not understand which comment you mean. There are few about bridge
conversion details, I will send my comments.

Thanks,
Jagan.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-11-25 16:14 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-22  6:52 [PATCH v5 0/7] drm: sun4i: dsi: Convert drm bridge Jagan Teki
2021-11-22  6:52 ` Jagan Teki
2021-11-22  6:52 ` [PATCH v5 1/7] drm: sun4i: dsi: Drop DRM bind race with bridge attach Jagan Teki
2021-11-22  6:52   ` Jagan Teki
2021-11-22  6:52 ` [PATCH v5 2/7] drm: sun4i: dsi: Add component only once DSI device attached Jagan Teki
2021-11-22  6:52   ` Jagan Teki
2021-11-22  6:52 ` [PATCH v5 3/7] drm: sun4i: dsi: Convert to bridge driver Jagan Teki
2021-11-22  6:52   ` Jagan Teki
2021-11-22 10:07   ` Maxime Ripard
2021-11-22 10:07     ` Maxime Ripard
2021-11-22 12:45     ` Laurent Pinchart
2021-11-22 12:45       ` Laurent Pinchart
2021-11-22 13:48     ` Jagan Teki
2021-11-22 13:48       ` Jagan Teki
2021-11-22 14:04       ` Maxime Ripard
2021-11-22 14:04         ` Maxime Ripard
2021-11-22 14:19         ` Jagan Teki
2021-11-22 14:19           ` Jagan Teki
2021-11-22 15:04           ` Maxime Ripard
2021-11-22 15:04             ` Maxime Ripard
2021-11-25 16:17             ` Jagan Teki
2021-11-25 16:17               ` Jagan Teki
2021-11-23 18:32           ` Jagan Teki
2021-11-23 18:32             ` Jagan Teki
2021-11-25 14:15             ` Maxime Ripard
2021-11-25 14:15               ` Maxime Ripard
2021-11-25 14:25               ` Jagan Teki
2021-11-25 14:25                 ` Jagan Teki
2021-11-25 16:10                 ` Maxime Ripard
2021-11-25 16:10                   ` Maxime Ripard
2021-11-25 16:14                   ` Jagan Teki [this message]
2021-11-25 16:14                     ` Jagan Teki
2021-11-26 16:04                     ` Maxime Ripard
2021-11-26 16:04                       ` Maxime Ripard
2021-11-30  7:39                       ` Jagan Teki
2021-11-30  7:39                         ` Jagan Teki
2021-12-05 17:39                         ` Michael Nazzareno Trimarchi
2021-12-05 17:39                           ` Michael Nazzareno Trimarchi
2021-11-22 12:52   ` Neil Armstrong
2021-11-22 12:52     ` Neil Armstrong
2021-11-22 13:16     ` Jagan Teki
2021-11-22 13:16       ` Jagan Teki
2021-11-22 15:35       ` Neil Armstrong
2021-11-22 15:35         ` Neil Armstrong
2021-11-22 17:19         ` Dave Stevenson
2021-11-22 17:19           ` Dave Stevenson
2021-11-23  8:19           ` Neil Armstrong
2021-11-23  8:19             ` Neil Armstrong
2021-11-22  6:52 ` [PATCH v5 4/7] drm: sun4i: dsi: Add mode_set function Jagan Teki
2021-11-22  6:52   ` Jagan Teki
2021-11-22 10:07   ` Maxime Ripard
2021-11-22 10:07     ` Maxime Ripard
2021-11-22 13:05     ` Jagan Teki
2021-11-22 13:05       ` Jagan Teki
2021-11-22 13:28       ` Maxime Ripard
2021-11-22 13:28         ` Maxime Ripard
2021-11-22 13:51         ` Jagan Teki
2021-11-22 13:51           ` Jagan Teki
2021-11-22 14:09           ` Maxime Ripard
2021-11-22 14:09             ` Maxime Ripard
2021-11-22 14:31             ` Jagan Teki
2021-11-22 14:31               ` Jagan Teki
2021-11-22 15:06               ` Maxime Ripard
2021-11-22 15:06                 ` Maxime Ripard
2021-11-22 15:17                 ` Jagan Teki
2021-11-22 15:17                   ` Jagan Teki
2021-11-22  6:52 ` [DO NOT MERGE] [PATCH v5 5/7] ARM: dts: sun8i: bananapi-m2m: Enable S070WV20-CT16 Panel Jagan Teki
2021-11-22  6:52   ` Jagan Teki
2021-11-22  6:52 ` [DO NOT MERGE] [PATCH v5 6/7] ARM: dts: sun8i: bananapi-m2m: Enable ICN6211 DSI Bridge Jagan Teki
2021-11-22  6:52   ` Jagan Teki
2021-11-22  6:52 ` [DO NOT MERGE] [PATCH v5 7/7] ARM: dts: sun8i: Enable DLPC3433 Bridge (I2C) Jagan Teki
2021-11-22  6:52   ` Jagan Teki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMty3ZBT9ZgwUs3g+5kjcp2DcWryA02YADAS_Kt8-EGe85VSZg@mail.gmail.com \
    --to=jagan@amarulasolutions.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-amarula@amarulasolutions.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=maxime@cerno.tech \
    --cc=narmstrong@baylibre.com \
    --cc=robert.foss@linaro.org \
    --cc=sam@ravnborg.org \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.