On Fri, May 12, 2017 at 10:34 PM, Olof Johansson <olof@xxxxxxxxx> wrote: > We use a directory under arch/$ARCH/boot/dts as an include path > that has links outside of the subtree to find dt-bindings from under > include/dt-bindings. That's been working well, but new DT architectures > haven't been adding them by default. > > Recently there's been a desire to share some of the DT material between > arm and arm64, which originally caused developers to create symlinks or > relative includes between the subtrees. This isn't ideal -- it breaks > if the DT files aren't stored in the exact same hierarchy as the kernel > tree, and generally it's just icky. > > As a somewhat cleaner solution we decided to add a $ARCH/ prefix link > once, and allow DTS files to reference dtsi (and dts) files in other > architectures that way. > > Original approach was to create these links under each architecture, > but it lead to the problem of recursive symlinks. > > As a remedy, move the include link directories out of the architecture > trees into a common location. At the same time, they can now share one > directory and one dt-bindings/ link as well. > > Fixes: 4027494ae6e3 ('ARM: dts: add arm/arm64 include symlinks') > Reported-by: Russell King <linux@xxxxxxxxxxxxxxx> > Reported-by: Omar Sandoval <osandov@xxxxxxxxxxx> > Cc: Heiko Stuebner <heiko@xxxxxxxxx> > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: Russell King <linux@xxxxxxxxxxxxxxx> > Cc: Catalin Marinas <catalin.marinas@xxxxxxx> > Cc: Will Deacon <will.deacon@xxxxxxx> > Cc: Mikael Starvik <starvik@xxxxxxxx> > Cc: Jesper Nilsson <jesper.nilsson@xxxxxxxx> > Cc: James Hogan <james.hogan@xxxxxxxxxx> > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> > Cc: Paul Mackerras <paulus@xxxxxxxxx> > Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > Cc: Frank Rowand <frowand.list@xxxxxxxxx> > Cc: linux-arch <linux-arch@xxxxxxxxxxxxxxx> > Signed-off-by: Olof Johansson <olof@xxxxxxxxx> > --- > arch/arm/boot/dts/include/arm | 1 - > arch/arm/boot/dts/include/arm64 | 1 - > arch/arm/boot/dts/include/dt-bindings | 1 - > arch/arm64/boot/dts/include/arm | 1 - > arch/arm64/boot/dts/include/arm64 | 1 - > arch/arm64/boot/dts/include/dt-bindings | 1 - > arch/cris/boot/dts/include/dt-bindings | 1 - > arch/metag/boot/dts/include/dt-bindings | 1 - > arch/mips/boot/dts/include/dt-bindings | 1 - > arch/powerpc/boot/dts/include/dt-bindings | 1 - > scripts/Makefile.lib | 2 +- > scripts/dtc/include-prefixes/arc | 1 + > scripts/dtc/include-prefixes/arm | 1 + > scripts/dtc/include-prefixes/arm64 | 1 + > scripts/dtc/include-prefixes/c6x | 1 + > scripts/dtc/include-prefixes/cris | 1 + > scripts/dtc/include-prefixes/dt-bindings | 1 + > scripts/dtc/include-prefixes/h8300 | 1 + > scripts/dtc/include-prefixes/metag | 1 + > scripts/dtc/include-prefixes/microblaze | 1 + > scripts/dtc/include-prefixes/mips | 1 + > scripts/dtc/include-prefixes/nios2 | 1 + > scripts/dtc/include-prefixes/openrisc | 1 + > scripts/dtc/include-prefixes/powerpc | 1 + > scripts/dtc/include-prefixes/sh | 1 + > scripts/dtc/include-prefixes/xtensa | 1 + I'd prefer not to mix things in scripts/dtc that aren't the import of dtc (yes, we do have a few other things already, but they are at least scripts). Couldn't this go in include/dt-bindings/ instead? Rob