Thread (1 message) 1 message, 1 author, 2016-06-11

Re: case sensitivity for devicetree node names

From: Frank Rowand <hidden>
Date: 2016-06-11 19:38:09
Also in: linuxppc-dev

Hi Ben,

(and adding other powerpc folks)

On 06/10/16 13:05, Frank Rowand wrote:
I had assumed that devicetree node names were case sensitive. But a recent
email thread asserted that they were not, which made me curious.

dtc treats node names as case sensitive:

$ cat test_node_case_1.dts

/dts-v1/;

/ {
	node-x {
		prop_a = < 1 >;
	};
};

/ {
	node-X {
		prop_a = < 2 >;
	};
};

$ cat test_node_case_2.dts

/dts-v1/;

/ {
	node-x {
		prop_a = < 1 >;
	};
};

/ {
	node-x {
		prop_a = < 2 >;
	};
};

$ dtc -O dts test_node_case_1.dts
/dts-v1/;

/ {

	node-x {
		prop_a = <0x1>;
	};

	node-X {
		prop_a = <0x2>;
	};
};

$ dtc -O dts test_node_case_2.dts
/dts-v1/;

/ {

	node-x {
		prop_a = <0x2>;
	};
};


But the Linux kernel source code defines of_node_cmp() as:

  include/linux/of.h:

  /* Default string compare functions, Allow arch asm/prom.h to override */
  #if !defined(of_compat_cmp)
  #define of_node_cmp(s1, s2) strcasecmp((s1), (s2))

arch/sparc/include/asm/prom.h uses strcmp() instead of strcasecmp().

Examples of using of_node_cmp() to check for a node name can be found,
for example, of_find_node_by_name().

Is case insensitivity for node names a bug in the Linux kernel, or desired
for some reason?

-Frank
I chased through the history and found a 2.6.0-test5 announcement
which noted the patch from you which adds:

  of_find_node_by_path()
  of_find_node_by_name()
  of_find_node_by_type()
  of_find_compatible_node()

(And the patch is commit 394edd852a14 in the git recreation
of bitkeeper days, which is found at
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git)

That version of the functions uses a case insensitive compare for
devicetree node names.

Do you remember why you chose to not use a case sensitive compare?

Thanks,

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