All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: "Lad,  Prabhakar" <prabhakar.csengg@gmail.com>,
	"\"Uwe Kleine-König\"" <u.kleine-koenig@pengutronix.de>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Alexey Brodkin" <abrodkin@synopsys.com>,
	"Alim Akhtar" <alim.akhtar@samsung.com>,
	"Andrzej Hajda" <andrzej.hajda@intel.com>,
	"Biju Das" <biju.das.jz@bp.renesas.com>,
	"Broadcom internal kernel review list"
	<bcm-kernel-feedback-list@broadcom.com>,
	"Claudiu Beznea" <claudiu.beznea@tuxon.dev>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
	"David Airlie" <airlied@gmail.com>,
	"Eugen Hristev" <eugen.hristev@collabora.com>,
	"Florian Fainelli" <florian.fainelli@broadcom.com>,
	"Hans Verkuil" <hverkuil-cisco@xs4all.nl>,
	"Helge Deller" <deller@gmx.de>,
	"Hugues Fruchet" <hugues.fruchet@foss.st.com>,
	"Jacopo Mondi" <jacopo@jmondi.org>,
	"Jessica Zhang" <quic_jesszhan@quicinc.com>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Neil Armstrong" <neil.armstrong@linaro.org>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	"Sam Ravnborg" <sam@ravnborg.org>,
	"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Tim Harvey" <tharvey@gateworks.com>,
	dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-fbdev@vger.kernel.org, linux-media@vger.kernel.org,
	linux-omap@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org,
	linux-stm32@st-md-mailman.stormreply.com
Subject: Re: [PATCH 1/4] gpu: drm: replace of_graph_get_next_endpoint()
Date: Tue, 6 Feb 2024 15:31:22 +0200	[thread overview]
Message-ID: <20240206133122.GA2827@pendragon.ideasonboard.com> (raw)
In-Reply-To: <87sf26nvy2.wl-kuninori.morimoto.gx@renesas.com>

Hello Morimoto-san,

Thank you for the patch.

On Tue, Feb 06, 2024 at 02:55:01AM +0000, Kuninori Morimoto wrote:
> From DT point of view, in general, drivers should be asking for a
> specific port number because their function is fixed in the binding.
> 
> of_graph_get_next_endpoint() doesn't match to this concept.
> 
> Simply replace
> 
> 	- of_graph_get_next_endpoint(xxx, NULL);
> 	+ of_graph_get_endpoint_by_regs(xxx, 0, -1);
> 
> Link: https://lore.kernel.org/r/20240202174941.GA310089-robh@kernel.org
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>  drivers/gpu/drm/drm_of.c                              | 2 +-
>  drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c | 2 +-
>  drivers/gpu/drm/tiny/arcpgu.c                         | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
> index 177b600895d3..c2eae9296012 100644
> --- a/drivers/gpu/drm/drm_of.c
> +++ b/drivers/gpu/drm/drm_of.c
> @@ -516,7 +516,7 @@ struct mipi_dsi_host *drm_of_get_dsi_bus(struct device *dev)
>  	/*
>  	 * Get first endpoint child from device.
>  	 */
> -	endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
> +	endpoint = of_graph_get_endpoint_by_regs(dev->of_node, 0, -1);

This assumes that the DSI device's port@0 will also be the input. That's
fine for current users of this function, but we should at least document
it.

diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
index 177b600895d3..012c4d04cf51 100644
--- a/drivers/gpu/drm/drm_of.c
+++ b/drivers/gpu/drm/drm_of.c
@@ -504,6 +504,8 @@ EXPORT_SYMBOL_GPL(drm_of_get_data_lanes_count_ep);
  * Gets parent DSI bus for a DSI device controlled through a bus other
  * than MIPI-DCS (SPI, I2C, etc.) using the Device Tree.
  *
+ * This function assumes that the device's port@0 is the DSI input.
+ *
  * Returns pointer to mipi_dsi_host if successful, -EINVAL if the
  * request is unsupported, -EPROBE_DEFER if the DSI host is found but
  * not available, or -ENODEV otherwise.

With this,

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

>  	if (!endpoint)
>  		return ERR_PTR(-ENODEV);
>  
> diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> index 4618c892cdd6..e10e469aa7a6 100644
> --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> @@ -400,7 +400,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c)
>  	rpi_touchscreen_i2c_write(ts, REG_POWERON, 0);
>  
>  	/* Look up the DSI host.  It needs to probe before we do. */
> -	endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
> +	endpoint = of_graph_get_endpoint_by_regs(dev->of_node, 0, -1);
>  	if (!endpoint)
>  		return -ENODEV;
>  
> diff --git a/drivers/gpu/drm/tiny/arcpgu.c b/drivers/gpu/drm/tiny/arcpgu.c
> index e5b10e41554a..04d0053b9315 100644
> --- a/drivers/gpu/drm/tiny/arcpgu.c
> +++ b/drivers/gpu/drm/tiny/arcpgu.c
> @@ -288,7 +288,7 @@ static int arcpgu_load(struct arcpgu_drm_private *arcpgu)
>  	 * There is only one output port inside each device. It is linked with
>  	 * encoder endpoint.
>  	 */
> -	endpoint_node = of_graph_get_next_endpoint(pdev->dev.of_node, NULL);
> +	endpoint_node = of_graph_get_endpoint_by_regs(pdev->dev.of_node, 0, -1);
>  	if (endpoint_node) {
>  		encoder_node = of_graph_get_remote_port_parent(endpoint_node);
>  		of_node_put(endpoint_node);

-- 
Regards,

Laurent Pinchart

WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: "Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Alim Akhtar" <alim.akhtar@samsung.com>,
	"Sam Ravnborg" <sam@ravnborg.org>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	dri-devel@lists.freedesktop.org, "Lad,
	 Prabhakar" <prabhakar.csengg@gmail.com>,
	"Andrzej Hajda" <andrzej.hajda@intel.com>,
	"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	"David Airlie" <airlied@gmail.com>,
	linux-stm32@st-md-mailman.stormreply.com,
	linux-omap@vger.kernel.org,
	"Florian Fainelli" <florian.fainelli@broadcom.com>,
	"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
	"Hugues Fruchet" <hugues.fruchet@foss.st.com>,
	"Helge Deller" <deller@gmx.de>,
	"Alexey Brodkin" <abrodkin@synopsys.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Broadcom internal kernel review list"
	<bcm-kernel-feedback-list@broadcom.com>,
	"\"Uwe Kleine-König\"" <u.kleine-koenig@pengutronix.de>,
	"Jessica Zhang" <quic_jesszhan@quicinc.com>,
	linux-media@vger.kernel.org, "Jacopo Mondi" <jacopo@jmondi.org>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Tim Harvey" <tharvey@gateworks.com>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Eugen Hristev" <eugen.hristev@collabora.com>,
	linux-samsung-soc@vger.kernel.org,
	"Maxime Ripard" <mripard@kernel.org>,
	linux-fbdev@vger.kernel.org,
	"Biju Das" <biju.das.jz@bp.renesas.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	"Neil Armstrong" <neil.armstrong@linaro.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Claudiu Beznea" <claudiu.beznea@tuxon.dev>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Hans Verkuil" <hverkuil-cisco@xs4all.nl>,
	linux-rpi-kernel@lists.infradead.org
Subject: Re: [PATCH 1/4] gpu: drm: replace of_graph_get_next_endpoint()
Date: Tue, 6 Feb 2024 15:31:22 +0200	[thread overview]
Message-ID: <20240206133122.GA2827@pendragon.ideasonboard.com> (raw)
In-Reply-To: <87sf26nvy2.wl-kuninori.morimoto.gx@renesas.com>

Hello Morimoto-san,

Thank you for the patch.

On Tue, Feb 06, 2024 at 02:55:01AM +0000, Kuninori Morimoto wrote:
> From DT point of view, in general, drivers should be asking for a
> specific port number because their function is fixed in the binding.
> 
> of_graph_get_next_endpoint() doesn't match to this concept.
> 
> Simply replace
> 
> 	- of_graph_get_next_endpoint(xxx, NULL);
> 	+ of_graph_get_endpoint_by_regs(xxx, 0, -1);
> 
> Link: https://lore.kernel.org/r/20240202174941.GA310089-robh@kernel.org
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>  drivers/gpu/drm/drm_of.c                              | 2 +-
>  drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c | 2 +-
>  drivers/gpu/drm/tiny/arcpgu.c                         | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
> index 177b600895d3..c2eae9296012 100644
> --- a/drivers/gpu/drm/drm_of.c
> +++ b/drivers/gpu/drm/drm_of.c
> @@ -516,7 +516,7 @@ struct mipi_dsi_host *drm_of_get_dsi_bus(struct device *dev)
>  	/*
>  	 * Get first endpoint child from device.
>  	 */
> -	endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
> +	endpoint = of_graph_get_endpoint_by_regs(dev->of_node, 0, -1);

This assumes that the DSI device's port@0 will also be the input. That's
fine for current users of this function, but we should at least document
it.

diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
index 177b600895d3..012c4d04cf51 100644
--- a/drivers/gpu/drm/drm_of.c
+++ b/drivers/gpu/drm/drm_of.c
@@ -504,6 +504,8 @@ EXPORT_SYMBOL_GPL(drm_of_get_data_lanes_count_ep);
  * Gets parent DSI bus for a DSI device controlled through a bus other
  * than MIPI-DCS (SPI, I2C, etc.) using the Device Tree.
  *
+ * This function assumes that the device's port@0 is the DSI input.
+ *
  * Returns pointer to mipi_dsi_host if successful, -EINVAL if the
  * request is unsupported, -EPROBE_DEFER if the DSI host is found but
  * not available, or -ENODEV otherwise.

With this,

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

>  	if (!endpoint)
>  		return ERR_PTR(-ENODEV);
>  
> diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> index 4618c892cdd6..e10e469aa7a6 100644
> --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> @@ -400,7 +400,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c)
>  	rpi_touchscreen_i2c_write(ts, REG_POWERON, 0);
>  
>  	/* Look up the DSI host.  It needs to probe before we do. */
> -	endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
> +	endpoint = of_graph_get_endpoint_by_regs(dev->of_node, 0, -1);
>  	if (!endpoint)
>  		return -ENODEV;
>  
> diff --git a/drivers/gpu/drm/tiny/arcpgu.c b/drivers/gpu/drm/tiny/arcpgu.c
> index e5b10e41554a..04d0053b9315 100644
> --- a/drivers/gpu/drm/tiny/arcpgu.c
> +++ b/drivers/gpu/drm/tiny/arcpgu.c
> @@ -288,7 +288,7 @@ static int arcpgu_load(struct arcpgu_drm_private *arcpgu)
>  	 * There is only one output port inside each device. It is linked with
>  	 * encoder endpoint.
>  	 */
> -	endpoint_node = of_graph_get_next_endpoint(pdev->dev.of_node, NULL);
> +	endpoint_node = of_graph_get_endpoint_by_regs(pdev->dev.of_node, 0, -1);
>  	if (endpoint_node) {
>  		encoder_node = of_graph_get_remote_port_parent(endpoint_node);
>  		of_node_put(endpoint_node);

-- 
Regards,

Laurent Pinchart

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

  reply	other threads:[~2024-02-06 13:31 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-06  2:54 [PATCH 0/4] of: replace of_graph_get_next_endpoint() Kuninori Morimoto
2024-02-06  2:55 ` [PATCH 1/4] gpu: drm: " Kuninori Morimoto
2024-02-06  2:55   ` Kuninori Morimoto
2024-02-06 13:31   ` Laurent Pinchart [this message]
2024-02-06 13:31     ` Laurent Pinchart
2024-02-06  2:55 ` [PATCH 2/4] media: i2c: " Kuninori Morimoto
2024-02-06  2:55   ` Kuninori Morimoto
2024-02-06 13:41   ` Laurent Pinchart
2024-02-06 13:41     ` Laurent Pinchart
2024-02-06 14:44     ` Hans Verkuil
2024-02-06 14:44       ` Hans Verkuil
2024-02-07  1:06       ` Kuninori Morimoto
2024-02-07  1:06         ` Kuninori Morimoto
2024-02-07 13:14       ` Krzysztof Hałasa
2024-02-07 13:14         ` Krzysztof Hałasa
2024-02-07 13:51         ` Laurent Pinchart
2024-02-07 13:51           ` Laurent Pinchart
2024-02-07 13:54           ` Hans Verkuil
2024-02-07 13:54             ` Hans Verkuil
2024-02-07 13:13     ` Krzysztof Hałasa
2024-02-07 13:13       ` Krzysztof Hałasa
2024-02-07 13:55       ` Laurent Pinchart
2024-02-07 13:55         ` Laurent Pinchart
2024-02-06  2:55 ` [PATCH 3/4] media: platform: " Kuninori Morimoto
2024-02-06  2:55   ` Kuninori Morimoto
2024-02-06 16:25   ` Laurent Pinchart
2024-02-06 16:25     ` Laurent Pinchart
2024-02-06 23:45     ` Kuninori Morimoto
2024-02-06 23:45       ` Kuninori Morimoto
2024-02-07 13:57       ` Laurent Pinchart
2024-02-07 13:57         ` Laurent Pinchart
2024-02-06  2:55 ` [PATCH 4/4] video: fbdev: " Kuninori Morimoto
2024-02-06  2:55   ` Kuninori Morimoto
2024-02-06 16:44   ` Laurent Pinchart
2024-02-06 16:44     ` Laurent Pinchart
2024-02-07  0:05     ` Kuninori Morimoto
2024-02-07  0:05       ` Kuninori Morimoto

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=20240206133122.GA2827@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=abrodkin@synopsys.com \
    --cc=airlied@gmail.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=alim.akhtar@samsung.com \
    --cc=andrzej.hajda@intel.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=daniel@ffwll.ch \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eugen.hristev@collabora.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=hugues.fruchet@foss.st.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=jacopo@jmondi.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=linux@armlinux.org.uk \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mchehab@kernel.org \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=mripard@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=prabhakar.csengg@gmail.com \
    --cc=quic_jesszhan@quicinc.com \
    --cc=s.nawrocki@samsung.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=sam@ravnborg.org \
    --cc=tharvey@gateworks.com \
    --cc=tzimmermann@suse.de \
    --cc=u.kleine-koenig@pengutronix.de \
    /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.