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

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

From: Stephen Warren <hidden>
Date: 2012-03-21 17:25:32
Also in: linux-tegra, lkml

On 03/21/2012 09:48 AM, Stephen Warren wrote:
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
+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.
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?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help