From: Jyri Sarha <jsarha-l0cyMroinI0@public.gmane.org>
To: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
David Airlie <airlied-cv59FeDIM0c@public.gmane.org>,
Daniel Vetter
<daniel.vetter-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Sean Paul <seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Frank Rowand
<frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Boris Brezillon
<boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Archit Taneja <architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
Jingoo Han <jingoohan1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Inki Dae <inki.dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
Joonyoung Shim
<jy0922.shim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
Seung-Woo Kim
<sw0312.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
Kyungmin Park
<kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
Kukjin Kim <kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Krzysztof Kozlowski
<krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Javier Martinez Canillas
<javier-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>,
Stefan Agner <stefan-XLVq0VzYD2Y@public.gmane.org>,
Alison Wang <alison.wang-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
Xinliang Liu
<z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q@public.gmane.org>,
Rongrong Zou
<zourongrong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Xinwei Kong
<kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q@public.gmane.org>,
Chen
Subject: Re: [PATCH 3/5] drm: convert drivers to use of_graph_get_remote_node
Date: Mon, 6 Feb 2017 10:31:15 +0200 [thread overview]
Message-ID: <270924f7-8e92-a99a-a185-c814cdf1fe01@ti.com> (raw)
In-Reply-To: <20170204033635.10250-4-robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Thanks Rob, for nice cleanup, but ...
On 02/04/17 05:36, Rob Herring wrote:
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
> index 6dfdb145f3bb..e74cc236a79b 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
> @@ -1013,16 +1013,7 @@ int tilcdc_crtc_create(struct drm_device *dev)
> drm_crtc_helper_add(crtc, &tilcdc_crtc_helper_funcs);
>
> if (priv->is_componentized) {
> - struct device_node *ports =
> - of_get_child_by_name(dev->dev->of_node, "ports");
> -
> - if (ports) {
> - crtc->port = of_get_child_by_name(ports, "port");
> - of_node_put(ports);
> - } else {
> - crtc->port =
> - of_get_child_by_name(dev->dev->of_node, "port");
> - }
> + crtc->port = of_graph_get_port_by_id(dev->dev->of_node, 0, 0);
> if (!crtc->port) { /* This should never happen */
> dev_err(dev->dev, "Port node not found in %s\n",
> dev->dev->of_node->full_name);
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_external.c b/drivers/gpu/drm/tilcdc/tilcdc_external.c
> index c67d7cd7d57e..b7523dce4e8a 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_external.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_external.c
> @@ -187,39 +187,6 @@ int tilcdc_attach_bridge(struct drm_device *ddev, struct drm_bridge *bridge)
> return ret;
> }
>
> -static int tilcdc_node_has_port(struct device_node *dev_node)
> -{
> - struct device_node *node;
> -
> - node = of_get_child_by_name(dev_node, "ports");
> - if (!node)
> - node = of_get_child_by_name(dev_node, "port");
> - if (!node)
> - return 0;
> - of_node_put(node);
> -
> - return 1;
> -}
> -
> -static
> -struct device_node *tilcdc_get_remote_node(struct device_node *node)
> -{
> - struct device_node *ep;
> - struct device_node *parent;
> -
> - if (!tilcdc_node_has_port(node))
> - return NULL;
> -
> - ep = of_graph_get_next_endpoint(node, NULL);
> - if (!ep)
> - return NULL;
> -
> - parent = of_graph_get_remote_port_parent(ep);
> - of_node_put(ep);
> -
> - return parent;
> -}
> -
> int tilcdc_attach_external_device(struct drm_device *ddev)
> {
> struct tilcdc_drm_private *priv = ddev->dev_private;
> @@ -227,7 +194,7 @@ int tilcdc_attach_external_device(struct drm_device *ddev)
> struct drm_bridge *bridge;
> int ret;
>
> - remote_node = tilcdc_get_remote_node(ddev->dev->of_node);
> + remote_node = of_graph_get_remote_node(ddev->dev->of_node, 0, 0);
> if (!remote_node)
> return 0;
>
> @@ -266,35 +233,18 @@ int tilcdc_get_external_components(struct device *dev,
> struct component_match **match)
> {
> struct device_node *node;
> - struct device_node *ep = NULL;
> - int count = 0;
> - int ret = 0;
>
> - if (!tilcdc_node_has_port(dev->of_node))
> + if (!match)
> return 0;
This will break tilcdc on setups that use the old tilcdc internal panel-
or tfp410- support. The driver uses tilcdc_get_external_components()
with match == NULL to check if the setup uses graph binding or legacy
internal panel/tfp410 support.
My intention is to get rid off the legacy internal encoder and connector
support (I even did that once already, but DRM had lot of infrastructure
changes in that area and my changes became obsolete), but we still need it.
>
> - while ((ep = of_graph_get_next_endpoint(dev->of_node, ep))) {
> - node = of_graph_get_remote_port_parent(ep);
> - if (!node || !of_device_is_available(node)) {
> - of_node_put(node);
> - continue;
> - }
> -
> - dev_dbg(dev, "Subdevice node '%s' found\n", node->name);
> -
> - if (of_device_is_compatible(node, "nxp,tda998x")) {
> - if (match)
> - drm_of_component_match_add(dev, match,
> - dev_match_of, node);
> - ret = 1;
> - }
> + node = of_graph_get_remote_node(dev->of_node, 0, 0);
>
> + if (!of_device_is_compatible(node, "nxp,tda998x")) {
> of_node_put(node);
> - if (count++ > 1) {
> - dev_err(dev, "Only one port is supported\n");
> - return -EINVAL;
> - }
> + return 0;
> }
>
> - return ret;
Simply remove the above mentioned if statement add and this here:
if (match)
> + drm_of_component_match_add(dev, match, dev_match_of, node);
> + of_node_put(node);
> + return 1;
> }
Best regards,
Jyri
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-02-06 8:31 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-04 3:36 [PATCH 0/5] DRM OF graph clean-up Rob Herring
2017-02-04 3:36 ` [PATCH 1/5] of: introduce of_graph_get_remote_node Rob Herring
[not found] ` <20170204033635.10250-2-robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-02-04 16:10 ` Vladimir Zapolskiy
2017-02-06 10:32 ` Philipp Zabel
2017-02-06 13:54 ` Rob Herring
[not found] ` <CAL_JsqJ2HO6WkSGccqGaxHPExnJGyRwrrL2wDOORO+auA=Jbrg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-06 14:03 ` Philipp Zabel
2017-02-06 8:50 ` Daniel Vetter
2017-02-06 13:41 ` Rob Herring
2017-02-04 3:36 ` [PATCH 2/5] drm: of: introduce drm_of_find_panel_or_bridge Rob Herring
[not found] ` <20170204033635.10250-3-robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-02-06 10:18 ` Liviu Dudau
[not found] ` <20170206101851.GU3140-A/Nd4k6kWRHZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2017-02-06 16:20 ` Rob Herring
2017-02-06 10:42 ` Philipp Zabel
[not found] ` <1486377768.3005.34.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2017-02-06 16:53 ` Rob Herring
2017-02-06 17:45 ` Philipp Zabel
2017-02-10 19:42 ` Frank Rowand
2017-02-04 3:36 ` [PATCH 3/5] drm: convert drivers to use of_graph_get_remote_node Rob Herring
[not found] ` <20170204033635.10250-4-robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-02-06 8:31 ` Jyri Sarha [this message]
2017-02-06 10:17 ` Neil Armstrong
2017-02-06 10:29 ` Liviu Dudau
[not found] ` <20170206102933.GV3140-A/Nd4k6kWRHZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2017-02-06 17:09 ` Rob Herring
2017-02-06 17:23 ` Liviu Dudau
[not found] ` <20170206172306.GY3140-A/Nd4k6kWRHZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2017-02-06 17:34 ` Russell King - ARM Linux
[not found] ` <20170206173407.GK27312-l+eeeJia6m9URfEZ8mYm6t73F7V6hmMc@public.gmane.org>
2017-02-06 17:55 ` Liviu Dudau
[not found] ` <20170206175533.GZ3140-A/Nd4k6kWRHZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2017-02-06 18:09 ` Russell King - ARM Linux
2017-02-06 17:42 ` Rob Herring
2017-02-06 10:52 ` Philipp Zabel
2017-02-06 13:40 ` Rob Herring
2017-02-08 11:57 ` Liviu Dudau
2017-02-08 20:44 ` Eric Anholt
2017-02-04 3:36 ` [PATCH 4/5] drm: convert drivers to use drm_of_find_panel_or_bridge Rob Herring
[not found] ` <20170204033635.10250-5-robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-02-04 20:26 ` Fabio Estevam
2017-02-05 22:25 ` Rob Herring
[not found] ` <CAL_JsqKnPryTDhXKQtRZ05KZ1KDgNi40JP5W8HFgcEZJUTSBFg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-06 0:01 ` Fabio Estevam
[not found] ` <CAOMZO5AmrpfDaC3rmH+DTON+xgYuFeXKpVhYHMxYqF9eh3Af-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-06 1:22 ` Fabio Estevam
2017-02-06 10:03 ` Maxime Ripard
2017-02-06 17:32 ` Rob Herring
2017-02-08 7:46 ` Maxime Ripard
2017-02-06 11:07 ` Philipp Zabel
2017-02-04 3:36 ` [PATCH 5/5] drm: omap: use common OF graph helpers Rob Herring
2017-02-04 10:47 ` [PATCH 0/5] DRM OF graph clean-up Russell King - ARM Linux
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=270924f7-8e92-a99a-a185-c814cdf1fe01@ti.com \
--to=jsarha-l0cymroini0@public.gmane.org \
--cc=airlied-cv59FeDIM0c@public.gmane.org \
--cc=alison.wang-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=daniel.vetter-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=inki.dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=javier-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org \
--cc=jingoohan1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=jy0922.shim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q@public.gmane.org \
--cc=krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=stefan-XLVq0VzYD2Y@public.gmane.org \
--cc=sw0312.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q@public.gmane.org \
--cc=zourongrong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).