Thread (26 messages) 26 messages, 5 authors, 2012-04-03

Re: [PATCH V2 3/6] pinctrl: core device tree mapping table parsing support

From: Dong Aisheng <hidden>
Date: 2012-03-22 05:38:27
Also in: linux-tegra, lkml

On Thu, Mar 22, 2012 at 01:25:25AM +0800, Stephen Warren wrote:
On 03/21/2012 09:48 AM, Stephen Warren wrote:
quoted
On 03/21/2012 01:31 AM, Dong Aisheng wrote:
quoted
On Wed, Mar 21, 2012 at 01:44:36AM +0800, Stephen Warren wrote:
...
quoted
quoted
quoted
+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.
Yes, and it's meaningless to keep going forward if np is NULL.
quoted
quoted
quoted
+		}
+
+		/* 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?
Yes, i'm ok with it.

Regards
Dong Aisheng
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help