From: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Benjamin Herrenschmidt
<benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Grant Likely
<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
David Gibson
<david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>,
"devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Paul Mackerras <paulus-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>,
Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>,
linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: Re: case sensitivity for devicetree node names
Date: Sat, 11 Jun 2016 12:38:09 -0700 [thread overview]
Message-ID: <575C68A1.1020701@gmail.com> (raw)
In-Reply-To: <575B1D84.2010703-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
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
WARNING: multiple messages have this Message-ID (diff)
From: Frank Rowand <frowand.list@gmail.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Rob Herring <robh+dt@kernel.org>,
Grant Likely <grant.likely@secretlab.ca>,
David Gibson <david@gibson.dropbear.id.au>,
"devicetree-spec@vger.kernel.org"
<devicetree-spec@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: case sensitivity for devicetree node names
Date: Sat, 11 Jun 2016 12:38:09 -0700 [thread overview]
Message-ID: <575C68A1.1020701@gmail.com> (raw)
In-Reply-To: <575B1D84.2010703@gmail.com>
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
next prev parent reply other threads:[~2016-06-11 19:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-10 20:05 case sensitivity for devicetree node names Frank Rowand
[not found] ` <575B1D84.2010703-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-06-10 21:38 ` Rob Herring
[not found] ` <CAL_JsqKw8dVp5y487fo6_mwZfeN6ww8HiYnsudnB8afBrv2oMQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-10 22:02 ` Frank Rowand
2016-06-11 19:38 ` Frank Rowand [this message]
2016-06-11 19:38 ` Frank Rowand
[not found] ` <575C68A1.1020701-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-06-11 22:05 ` Benjamin Herrenschmidt
2016-06-11 22:05 ` Benjamin Herrenschmidt
[not found] ` <1465682743.19533.18.camel-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2016-06-12 18:39 ` Frank Rowand
2016-06-12 18:39 ` Frank Rowand
[not found] ` <575DAC69.5010804-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-06-12 21:56 ` Benjamin Herrenschmidt
2016-06-12 21:56 ` Benjamin Herrenschmidt
2016-06-14 1:10 ` David Gibson
[not found] ` <20160614011021.GD4882-RXTfZT5YzpxwFLYp8hBm2A@public.gmane.org>
2016-06-14 3:53 ` Frank Rowand
[not found] ` <575F7FC1.5040508-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-06-14 5:10 ` David Gibson
[not found] ` <20160614051028.GL4882-RXTfZT5YzpxwFLYp8hBm2A@public.gmane.org>
2016-06-14 5:29 ` Frank Rowand
[not found] ` <575F963F.8090105-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-06-14 6:05 ` David Gibson
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=575C68A1.1020701@gmail.com \
--to=frowand.list-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org \
--cc=david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org \
--cc=devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
--cc=linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org \
--cc=paulus-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@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.