On Thu, Aug 23, 2018 at 4:02 AM Grant Likely <grant.likely@xxxxxxx> wrote: > > On 23/08/2018 02:29, Benjamin Herrenschmidt wrote: > > On Wed, 2018-08-22 at 20:26 -0500, Rob Herring wrote: > >> On Wed, Aug 22, 2018 at 8:14 PM Benjamin Herrenschmidt > >> <benh@xxxxxxxxxxxxxxxxxxx> wrote: > >>> > >>> On Wed, 2018-08-22 at 19:47 -0500, Rob Herring wrote: > >>>> The default DT string handling in the kernel is node names and > >>>> compatibles are case insensitive and property names are case sensitive > >>>> (Sparc is the the only variation and is opposite). It seems only PPC > >>>> (and perhaps only Power Macs?) needs to support case insensitive > >>>> comparisons. It was probably a mistake to follow PPC for new arches > >>>> and we should have made everything case sensitive from the start. So I > >>>> have a few questions for the DT historians. :) > >>> > >>> Open Firmware itself is insensitive. > >> > >> Doesn't it depend on the implementation? Otherwise, how is Sparc different? > > > > Not sure ... Forth itself is insensitive for words but maybe not for > > string comparisons. > > What problem are you trying to solve? I'm looking at removing device_node.name and using full_name instead (which now is only the local node name plus unit-address). This means replacing of_node_cmp() (and still some strcmp) calls in a lot of places. I need to use either strncmp or strncasecmp instead. > I would think making everything > case insensitive would be the direction to go if you do anything. Least > possibility of breaking existing platforms in that scenario. Really? Even if all the "new" arches are effectively case sensitive? Anything using dtc and libfdt are (and json-schema certainly will be). But I frequently say the kernel's job is not DT validation, so you pass crap in, you get undefined results. Rob