All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Dong Aisheng <aisheng.dong-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Cc: "linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
	<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org"
	<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
	"rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org"
	<rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
	"linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org"
	<linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org>,
	Dong Aisheng-B29396
	<B29396-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
	"s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org"
	<s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	"dongas86-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org"
	<dongas86-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	"shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
	<shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"thomas.abraham-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
	<thomas.abraham-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org"
	<tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>,
	"sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org"
	<sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
	<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
	"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH V2 3/6] pinctrl: core device tree mapping table parsing support
Date: Wed, 21 Mar 2012 11:25:25 -0600	[thread overview]
Message-ID: <4F6A0F05.90104@wwwdotorg.org> (raw)
In-Reply-To: <4F69F844.3060102-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>

On 03/21/2012 09:48 AM, Stephen Warren wrote:
> On 03/21/2012 01:31 AM, Dong Aisheng wrote:
>> On Wed, Mar 21, 2012 at 01:44:36AM +0800, Stephen Warren wrote:
...
>>> +int pinctrl_dt_to_map(struct pinctrl *p)
>>> +{
>>> +	struct device_node *np = p->dev->of_node;
>>> +	int state, ret;
>>> +	char *propname;
>>> +	struct property *prop;
>>> +	const char *statename;
>>> +	const __be32 *list;
>>> +	int size, config;
>>> +	phandle phandle;
>>> +	struct device_node *np_config;
>>> +	struct pinctrl_dt_map *dt_map;
>>
>> Add NULL np checking?
> 
> Oops yes. I though I had that somewhere, but evidently not...

It turns out this isn't needed; of_node_get() and of_find_property()
both handle a NULL np just fine. Still, I suppose this might not always
be true for arbitrary code that's in pinctrl_dt_to_map(), so perhaps we
should add this anyway.

>>> +		}
>>> +
>>> +		/* For every referenced pin configuration node in it */
>>> +		for (config = 0; config < size; config++) {
>>> +			phandle = be32_to_cpup(list++);
>>> +
>>> +			/* Look up the pin configuration node */
>>> +			np_config = of_find_node_by_phandle(phandle);
>>
>> One option is using of_parse_phandle, then we do not need calculate
>> the phandle offset by ourselves.
>> Like:
>> np_config = of_parse_phandle(propname , config);
> 
> Yes, that's a good idea. I'll try that.

I looked at this more, and the existing code is a lot more efficient;
of_parse_phandle() internally calls of_find_property() each time, which
this pinctrl code has already done. I'd rather just leave this as it is.
Are you OK with that?

WARNING: multiple messages have this Message-ID (diff)
From: Stephen Warren <swarren@wwwdotorg.org>
To: Dong Aisheng <aisheng.dong@freescale.com>
Cc: "linus.walleij@linaro.org" <linus.walleij@linaro.org>,
	"grant.likely@secretlab.ca" <grant.likely@secretlab.ca>,
	"rob.herring@calxeda.com" <rob.herring@calxeda.com>,
	"linus.walleij@stericsson.com" <linus.walleij@stericsson.com>,
	Dong Aisheng-B29396 <B29396@freescale.com>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"dongas86@gmail.com" <dongas86@gmail.com>,
	"shawn.guo@linaro.org" <shawn.guo@linaro.org>,
	"thomas.abraham@linaro.org" <thomas.abraham@linaro.org>,
	"tony@atomide.com" <tony@atomide.com>,
	"sjg@chromium.org" <sjg@chromium.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree-discuss@lists.ozlabs.org" 
	<devicetree-discuss@lists.ozlabs.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>
Subject: Re: [PATCH V2 3/6] pinctrl: core device tree mapping table parsing support
Date: Wed, 21 Mar 2012 11:25:25 -0600	[thread overview]
Message-ID: <4F6A0F05.90104@wwwdotorg.org> (raw)
In-Reply-To: <4F69F844.3060102@wwwdotorg.org>

On 03/21/2012 09:48 AM, Stephen Warren wrote:
> On 03/21/2012 01:31 AM, Dong Aisheng wrote:
>> On Wed, Mar 21, 2012 at 01:44:36AM +0800, Stephen Warren wrote:
...
>>> +int pinctrl_dt_to_map(struct pinctrl *p)
>>> +{
>>> +	struct device_node *np = p->dev->of_node;
>>> +	int state, ret;
>>> +	char *propname;
>>> +	struct property *prop;
>>> +	const char *statename;
>>> +	const __be32 *list;
>>> +	int size, config;
>>> +	phandle phandle;
>>> +	struct device_node *np_config;
>>> +	struct pinctrl_dt_map *dt_map;
>>
>> Add NULL np checking?
> 
> Oops yes. I though I had that somewhere, but evidently not...

It turns out this isn't needed; of_node_get() and of_find_property()
both handle a NULL np just fine. Still, I suppose this might not always
be true for arbitrary code that's in pinctrl_dt_to_map(), so perhaps we
should add this anyway.

>>> +		}
>>> +
>>> +		/* For every referenced pin configuration node in it */
>>> +		for (config = 0; config < size; config++) {
>>> +			phandle = be32_to_cpup(list++);
>>> +
>>> +			/* Look up the pin configuration node */
>>> +			np_config = of_find_node_by_phandle(phandle);
>>
>> One option is using of_parse_phandle, then we do not need calculate
>> the phandle offset by ourselves.
>> Like:
>> np_config = of_parse_phandle(propname , config);
> 
> Yes, that's a good idea. I'll try that.

I looked at this more, and the existing code is a lot more efficient;
of_parse_phandle() internally calls of_find_property() each time, which
this pinctrl code has already done. I'd rather just leave this as it is.
Are you OK with that?

  parent reply	other threads:[~2012-03-21 17:25 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-20 17:44 [PATCH V2 1/6] dt: add property iteration helpers Stephen Warren
2012-03-20 17:44 ` Stephen Warren
2012-03-20 17:44 ` [PATCH V2 2/6] dt: pinctrl: Document device tree binding Stephen Warren
2012-03-20 19:50   ` Simon Glass
     [not found]   ` <1332265479-1260-2-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-21  5:37     ` Dong Aisheng
2012-03-21  5:37       ` Dong Aisheng
2012-03-20 17:44 ` [PATCH V2 3/6] pinctrl: core device tree mapping table parsing support Stephen Warren
     [not found]   ` <1332265479-1260-3-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-21  7:31     ` Dong Aisheng
2012-03-21  7:31       ` Dong Aisheng
2012-03-21  7:31       ` Dong Aisheng
     [not found]       ` <20120321073116.GE3191-Fb7DQEYuewWctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-03-21 15:48         ` Stephen Warren
2012-03-21 15:48           ` Stephen Warren
     [not found]           ` <4F69F844.3060102-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-21 17:25             ` Stephen Warren [this message]
2012-03-21 17:25               ` Stephen Warren
     [not found]               ` <4F6A0F05.90104-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-22  5:49                 ` Dong Aisheng
2012-03-22  5:49                   ` Dong Aisheng
2012-03-22  3:39             ` Dong Aisheng
2012-03-22  3:39               ` Dong Aisheng
2012-03-20 17:44 ` [PATCH V2 4/6] dt: Move Tegra20 pin mux binding into new pinctrl directory Stephen Warren
2012-03-20 17:44 ` [PATCH V2 5/6] dt: Document Tegra20/30 pinctrl binding Stephen Warren
     [not found]   ` <1332265479-1260-5-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-21  9:19     ` Dong Aisheng
2012-03-21  9:19       ` Dong Aisheng
     [not found]       ` <20120321091919.GA18592-Fb7DQEYuewWctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-03-21 15:57         ` Stephen Warren
2012-03-21 15:57           ` Stephen Warren
     [not found]           ` <4F69FA5A.9020504-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-22  4:00             ` Dong Aisheng
2012-03-22  4:00               ` Dong Aisheng
     [not found]               ` <20120322040024.GB840-Fb7DQEYuewWctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-03-22 15:45                 ` Stephen Warren
2012-03-22 15:45                   ` Stephen Warren
     [not found]                   ` <4F6B491B.8040506-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-23  4:51                     ` Dong Aisheng
2012-03-23  4:51                       ` Dong Aisheng
2012-03-20 17:44 ` [PATCH V2 6/6] pinctrl: tegra: Add complete device tree support Stephen Warren
     [not found]   ` <1332265479-1260-6-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-21  9:35     ` Dong Aisheng
2012-03-21  9:35       ` Dong Aisheng
2012-03-21 16:07       ` Stephen Warren
2012-03-21 16:07         ` Stephen Warren
     [not found]         ` <4F69FCBF.3050708-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-22  4:07           ` Dong Aisheng
2012-03-22  4:07             ` Dong Aisheng
     [not found]             ` <20120322040730.GC840-Fb7DQEYuewWctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-03-22 17:22               ` Stephen Warren
2012-03-22 17:22                 ` Stephen Warren
2012-04-01 17:29     ` Linus Walleij
2012-04-01 17:29       ` Linus Walleij
     [not found]       ` <CACRpkdav8x-Td-fH1Ree83GhNR8r7aA1dBsTQo2eU3nwwam21Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-04-02 15:34         ` Stephen Warren
2012-04-02 15:34           ` Stephen Warren
     [not found]           ` <4F79C6F7.4070701-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-04-03 21:06             ` Linus Walleij
2012-04-03 21:06               ` Linus Walleij
     [not found] ` <1332265479-1260-1-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-03-20 20:03   ` [PATCH V2 1/6] dt: add property iteration helpers Rob Herring
2012-03-20 20:03     ` Rob Herring

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=4F6A0F05.90104@wwwdotorg.org \
    --to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
    --cc=B29396-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
    --cc=aisheng.dong-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=dongas86-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
    --cc=linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org \
    --cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
    --cc=s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=thomas.abraham-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@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 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.