All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 13:01 ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 13:01 UTC (permalink / raw)
  To: Olof Johansson
  Cc: linux-kernel, linux-arm-kernel, devicetree, Heiko Stuebner,
	Mark Rutland, Russell King, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Fri, May 12, 2017 at 10:34 PM, Olof Johansson <olof@lixom.net> 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@armlinux.org.uk>
> Reported-by: Omar Sandoval <osandov@osandov.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Mikael Starvik <starvik@axis.com>
> Cc: Jesper Nilsson <jesper.nilsson@axis.com>
> Cc: James Hogan <james.hogan@imgtec.com>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Frank Rowand <frowand.list@gmail.com>
> Cc: linux-arch <linux-arch@vger.kernel.org>
> Signed-off-by: Olof Johansson <olof@lixom.net>
> ---
>  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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 13:01 ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 13:01 UTC (permalink / raw)
  To: Olof Johansson
  Cc: linux-kernel, linux-arm-kernel, devicetree, Heiko Stuebner,
	Mark Rutland, Russell King, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Fri, May 12, 2017 at 10:34 PM, Olof Johansson <olof@lixom.net> 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@armlinux.org.uk>
> Reported-by: Omar Sandoval <osandov@osandov.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Mikael Starvik <starvik@axis.com>
> Cc: Jesper Nilsson <jesper.nilsson@axis.com>
> Cc: James Hogan <james.hogan@imgtec.com>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Frank Rowand <frowand.list@gmail.com>
> Cc: linux-arch <linux-arch@vger.kernel.org>
> Signed-off-by: Olof Johansson <olof@lixom.net>
> ---
>  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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
  2017-05-15 13:01 ` Rob Herring
  (?)
@ 2017-05-15 14:26   ` Russell King - ARM Linux
  -1 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 14:26 UTC (permalink / raw)
  To: Rob Herring
  Cc: Olof Johansson, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
> 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?

I don't think that works.

The include path used is "include", which means that we force people
to use:

#include <dt-bindings/foo.dtsi>

in their DT files.  This means that we'd need to populate $topdir/include
with per-architecture symlinks on top of the 26 or so directories already
there, so that:

#include <arch/foo.dtsi>

would work.  That's quite horrible, since $topdir/include is the main
include path for C headers.

I guess we could have symlinks inside include/dt-bindings, but that
makes the includes:

#include <dt-bindings/arch/foo.dtsi>

but that's rather absurd because these _aren't_ dt-binding definitions.

Maybe what we should do is:

mkdir include/dt
git mv include/dt-bindings include/dt
for arch in arch/*; do
  dts=$arch/boot/dts
  if [ -d $dts ]; then
     a=include/dt/$(basename $arch)
     ln -s $dts $a
     git add $a
  fi
done
... fixup scripts/Makefile.lib ...
git commit

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 14:26   ` Russell King - ARM Linux
  0 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 14:26 UTC (permalink / raw)
  To: Rob Herring
  Cc: Olof Johansson, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
> 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?

I don't think that works.

The include path used is "include", which means that we force people
to use:

#include <dt-bindings/foo.dtsi>

in their DT files.  This means that we'd need to populate $topdir/include
with per-architecture symlinks on top of the 26 or so directories already
there, so that:

#include <arch/foo.dtsi>

would work.  That's quite horrible, since $topdir/include is the main
include path for C headers.

I guess we could have symlinks inside include/dt-bindings, but that
makes the includes:

#include <dt-bindings/arch/foo.dtsi>

but that's rather absurd because these _aren't_ dt-binding definitions.

Maybe what we should do is:

mkdir include/dt
git mv include/dt-bindings include/dt
for arch in arch/*; do
  dts=$arch/boot/dts
  if [ -d $dts ]; then
     a=include/dt/$(basename $arch)
     ln -s $dts $a
     git add $a
  fi
done
... fixup scripts/Makefile.lib ...
git commit

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 14:26   ` Russell King - ARM Linux
  0 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 14:26 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
> 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?

I don't think that works.

The include path used is "include", which means that we force people
to use:

#include <dt-bindings/foo.dtsi>

in their DT files.  This means that we'd need to populate $topdir/include
with per-architecture symlinks on top of the 26 or so directories already
there, so that:

#include <arch/foo.dtsi>

would work.  That's quite horrible, since $topdir/include is the main
include path for C headers.

I guess we could have symlinks inside include/dt-bindings, but that
makes the includes:

#include <dt-bindings/arch/foo.dtsi>

but that's rather absurd because these _aren't_ dt-binding definitions.

Maybe what we should do is:

mkdir include/dt
git mv include/dt-bindings include/dt
for arch in arch/*; do
  dts=$arch/boot/dts
  if [ -d $dts ]; then
     a=include/dt/$(basename $arch)
     ln -s $dts $a
     git add $a
  fi
done
... fixup scripts/Makefile.lib ...
git commit

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 14:47     ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 14:47 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Olof Johansson, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>> 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?
>
> I don't think that works.
>
> The include path used is "include", which means that we force people
> to use:
>
> #include <dt-bindings/foo.dtsi>

No, I was thinking you'd add include/dt-bindings/include-prefix/ to
the include path instead of scripts/dtc/include-prefix/. The only
downside I can see is people could mistakenly do:

#include <dt-bindings/include-prefix/$arch/foo.dtsi>

>
> in their DT files.  This means that we'd need to populate $topdir/include
> with per-architecture symlinks on top of the 26 or so directories already
> there, so that:
>
> #include <arch/foo.dtsi>
>
> would work.  That's quite horrible, since $topdir/include is the main
> include path for C headers.
>
> I guess we could have symlinks inside include/dt-bindings, but that
> makes the includes:
>
> #include <dt-bindings/arch/foo.dtsi>
>
> but that's rather absurd because these _aren't_ dt-binding definitions.

True, but the same can be said that "scripts/dtc" is not includes nor
kernel build infrastructure.

> Maybe what we should do is:
>
> mkdir include/dt
> git mv include/dt-bindings include/dt
> for arch in arch/*; do
>   dts=$arch/boot/dts
>   if [ -d $dts ]; then
>      a=include/dt/$(basename $arch)
>      ln -s $dts $a
>      git add $a
>   fi
> done
> ... fixup scripts/Makefile.lib ...
> git commit

That would just break every existing include in dts files.

Another idea. Could kbuild create all the symlinks at build time instead?

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 14:47     ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 14:47 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Olof Johansson, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
<linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>> 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?
>
> I don't think that works.
>
> The include path used is "include", which means that we force people
> to use:
>
> #include <dt-bindings/foo.dtsi>

No, I was thinking you'd add include/dt-bindings/include-prefix/ to
the include path instead of scripts/dtc/include-prefix/. The only
downside I can see is people could mistakenly do:

#include <dt-bindings/include-prefix/$arch/foo.dtsi>

>
> in their DT files.  This means that we'd need to populate $topdir/include
> with per-architecture symlinks on top of the 26 or so directories already
> there, so that:
>
> #include <arch/foo.dtsi>
>
> would work.  That's quite horrible, since $topdir/include is the main
> include path for C headers.
>
> I guess we could have symlinks inside include/dt-bindings, but that
> makes the includes:
>
> #include <dt-bindings/arch/foo.dtsi>
>
> but that's rather absurd because these _aren't_ dt-binding definitions.

True, but the same can be said that "scripts/dtc" is not includes nor
kernel build infrastructure.

> Maybe what we should do is:
>
> mkdir include/dt
> git mv include/dt-bindings include/dt
> for arch in arch/*; do
>   dts=$arch/boot/dts
>   if [ -d $dts ]; then
>      a=include/dt/$(basename $arch)
>      ln -s $dts $a
>      git add $a
>   fi
> done
> ... fixup scripts/Makefile.lib ...
> git commit

That would just break every existing include in dts files.

Another idea. Could kbuild create all the symlinks at build time instead?

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 14:47     ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 14:47 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Olof Johansson, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>> 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?
>
> I don't think that works.
>
> The include path used is "include", which means that we force people
> to use:
>
> #include <dt-bindings/foo.dtsi>

No, I was thinking you'd add include/dt-bindings/include-prefix/ to
the include path instead of scripts/dtc/include-prefix/. The only
downside I can see is people could mistakenly do:

#include <dt-bindings/include-prefix/$arch/foo.dtsi>

>
> in their DT files.  This means that we'd need to populate $topdir/include
> with per-architecture symlinks on top of the 26 or so directories already
> there, so that:
>
> #include <arch/foo.dtsi>
>
> would work.  That's quite horrible, since $topdir/include is the main
> include path for C headers.
>
> I guess we could have symlinks inside include/dt-bindings, but that
> makes the includes:
>
> #include <dt-bindings/arch/foo.dtsi>
>
> but that's rather absurd because these _aren't_ dt-binding definitions.

True, but the same can be said that "scripts/dtc" is not includes nor
kernel build infrastructure.

> Maybe what we should do is:
>
> mkdir include/dt
> git mv include/dt-bindings include/dt
> for arch in arch/*; do
>   dts=$arch/boot/dts
>   if [ -d $dts ]; then
>      a=include/dt/$(basename $arch)
>      ln -s $dts $a
>      git add $a
>   fi
> done
> ... fixup scripts/Makefile.lib ...
> git commit

That would just break every existing include in dts files.

Another idea. Could kbuild create all the symlinks at build time instead?

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 14:47     ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 14:47 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>> 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?
>
> I don't think that works.
>
> The include path used is "include", which means that we force people
> to use:
>
> #include <dt-bindings/foo.dtsi>

No, I was thinking you'd add include/dt-bindings/include-prefix/ to
the include path instead of scripts/dtc/include-prefix/. The only
downside I can see is people could mistakenly do:

#include <dt-bindings/include-prefix/$arch/foo.dtsi>

>
> in their DT files.  This means that we'd need to populate $topdir/include
> with per-architecture symlinks on top of the 26 or so directories already
> there, so that:
>
> #include <arch/foo.dtsi>
>
> would work.  That's quite horrible, since $topdir/include is the main
> include path for C headers.
>
> I guess we could have symlinks inside include/dt-bindings, but that
> makes the includes:
>
> #include <dt-bindings/arch/foo.dtsi>
>
> but that's rather absurd because these _aren't_ dt-binding definitions.

True, but the same can be said that "scripts/dtc" is not includes nor
kernel build infrastructure.

> Maybe what we should do is:
>
> mkdir include/dt
> git mv include/dt-bindings include/dt
> for arch in arch/*; do
>   dts=$arch/boot/dts
>   if [ -d $dts ]; then
>      a=include/dt/$(basename $arch)
>      ln -s $dts $a
>      git add $a
>   fi
> done
> ... fixup scripts/Makefile.lib ...
> git commit

That would just break every existing include in dts files.

Another idea. Could kbuild create all the symlinks at build time instead?

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:27       ` Russell King - ARM Linux
  0 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 15:27 UTC (permalink / raw)
  To: Rob Herring
  Cc: Olof Johansson, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 09:47:40AM -0500, Rob Herring wrote:
> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
> > Maybe what we should do is:
> >
> > mkdir include/dt
> > git mv include/dt-bindings include/dt
> > for arch in arch/*; do
> >   dts=$arch/boot/dts
> >   if [ -d $dts ]; then
> >      a=include/dt/$(basename $arch)
> >      ln -s $dts $a
> >      git add $a
> >   fi
> > done
> > ... fixup scripts/Makefile.lib ...
> > git commit
> 
> That would just break every existing include in dts files.

Are you sure about that - the existing:

#include <dt-bindings/foo.dtsi>

would still work.  Maybe you haven't parsed the shell code properly...

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:27       ` Russell King - ARM Linux
  0 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 15:27 UTC (permalink / raw)
  To: Rob Herring
  Cc: Olof Johansson, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 09:47:40AM -0500, Rob Herring wrote:
> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
> > Maybe what we should do is:
> >
> > mkdir include/dt
> > git mv include/dt-bindings include/dt
> > for arch in arch/*; do
> >   dts=$arch/boot/dts
> >   if [ -d $dts ]; then
> >      a=include/dt/$(basename $arch)
> >      ln -s $dts $a
> >      git add $a
> >   fi
> > done
> > ... fixup scripts/Makefile.lib ...
> > git commit
> 
> That would just break every existing include in dts files.

Are you sure about that - the existing:

#include <dt-bindings/foo.dtsi>

would still work.  Maybe you haven't parsed the shell code properly...

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:27       ` Russell King - ARM Linux
  0 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 15:27 UTC (permalink / raw)
  To: Rob Herring
  Cc: Olof Johansson, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 09:47:40AM -0500, Rob Herring wrote:
> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
> > Maybe what we should do is:
> >
> > mkdir include/dt
> > git mv include/dt-bindings include/dt
> > for arch in arch/*; do
> >   dts=$arch/boot/dts
> >   if [ -d $dts ]; then
> >      a=include/dt/$(basename $arch)
> >      ln -s $dts $a
> >      git add $a
> >   fi
> > done
> > ... fixup scripts/Makefile.lib ...
> > git commit
> 
> That would just break every existing include in dts files.

Are you sure about that - the existing:

#include <dt-bindings/foo.dtsi>

would still work.  Maybe you haven't parsed the shell code properly...

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:27       ` Russell King - ARM Linux
  0 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 15:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 09:47:40AM -0500, Rob Herring wrote:
> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
> > Maybe what we should do is:
> >
> > mkdir include/dt
> > git mv include/dt-bindings include/dt
> > for arch in arch/*; do
> >   dts=$arch/boot/dts
> >   if [ -d $dts ]; then
> >      a=include/dt/$(basename $arch)
> >      ln -s $dts $a
> >      git add $a
> >   fi
> > done
> > ... fixup scripts/Makefile.lib ...
> > git commit
> 
> That would just break every existing include in dts files.

Are you sure about that - the existing:

#include <dt-bindings/foo.dtsi>

would still work.  Maybe you haven't parsed the shell code properly...

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:27       ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 15:27 UTC (permalink / raw)
  To: Rob Herring
  Cc: Russell King - ARM Linux, linux-kernel, linux-arm-kernel,
	devicetree, Heiko Stuebner, Mark Rutland, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>> 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?
>>
>> I don't think that works.
>>
>> The include path used is "include", which means that we force people
>> to use:
>>
>> #include <dt-bindings/foo.dtsi>
>
> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
> the include path instead of scripts/dtc/include-prefix/. The only
> downside I can see is people could mistakenly do:
>
> #include <dt-bindings/include-prefix/$arch/foo.dtsi>

I considered that but thought it was a worse solution than the one I
ended up with. It's just confusing to have -I paths that enter an
include hierarchy at different levels like that.

Just see what already happened with the mistake on rockchip, where
Heiko accidentally included <include/dt-include/...> instead -- it'd
be nice to catch that when it happens through tools

>>
>> in their DT files.  This means that we'd need to populate $topdir/include
>> with per-architecture symlinks on top of the 26 or so directories already
>> there, so that:
>>
>> #include <arch/foo.dtsi>
>>
>> would work.  That's quite horrible, since $topdir/include is the main
>> include path for C headers.
>>
>> I guess we could have symlinks inside include/dt-bindings, but that
>> makes the includes:
>>
>> #include <dt-bindings/arch/foo.dtsi>
>>
>> but that's rather absurd because these _aren't_ dt-binding definitions.
>
> True, but the same can be said that "scripts/dtc" is not includes nor
> kernel build infrastructure.
>
>> Maybe what we should do is:
>>
>> mkdir include/dt
>> git mv include/dt-bindings include/dt
>> for arch in arch/*; do
>>   dts=$arch/boot/dts
>>   if [ -d $dts ]; then
>>      a=include/dt/$(basename $arch)
>>      ln -s $dts $a
>>      git add $a
>>   fi
>> done
>> ... fixup scripts/Makefile.lib ...
>> git commit
>
> That would just break every existing include in dts files.

It doesn't break dts includes if done together with a change in -I,
but it might break includes from the driver side (or needs another -I
there).

>
> Another idea. Could kbuild create all the symlinks at build time instead?

I considered that, but given that we're talking about a few soft links
that we need to find a good home for, it seemed like overkill that
adds magic to the build process. Having somehting that is easily
discovered when looking around the source tree is a lot better.

I looked around the tree for suitable homes for this directory of
links, and the least out-of-place I could find was under scripts/dtc.
You even have a script for uprevving the imported dtc sources, so it's
not like it's causing any problems from that point of view. But I do
agree that it's not ideal -- it was just the least bad option I could
find at the time. Better suggestions are welcome.

-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:27       ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 15:27 UTC (permalink / raw)
  To: Rob Herring
  Cc: Russell King - ARM Linux, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>> 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?
>>
>> I don't think that works.
>>
>> The include path used is "include", which means that we force people
>> to use:
>>
>> #include <dt-bindings/foo.dtsi>
>
> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
> the include path instead of scripts/dtc/include-prefix/. The only
> downside I can see is people could mistakenly do:
>
> #include <dt-bindings/include-prefix/$arch/foo.dtsi>

I considered that but thought it was a worse solution than the one I
ended up with. It's just confusing to have -I paths that enter an
include hierarchy at different levels like that.

Just see what already happened with the mistake on rockchip, where
Heiko accidentally included <include/dt-include/...> instead -- it'd
be nice to catch that when it happens through tools

>>
>> in their DT files.  This means that we'd need to populate $topdir/include
>> with per-architecture symlinks on top of the 26 or so directories already
>> there, so that:
>>
>> #include <arch/foo.dtsi>
>>
>> would work.  That's quite horrible, since $topdir/include is the main
>> include path for C headers.
>>
>> I guess we could have symlinks inside include/dt-bindings, but that
>> makes the includes:
>>
>> #include <dt-bindings/arch/foo.dtsi>
>>
>> but that's rather absurd because these _aren't_ dt-binding definitions.
>
> True, but the same can be said that "scripts/dtc" is not includes nor
> kernel build infrastructure.
>
>> Maybe what we should do is:
>>
>> mkdir include/dt
>> git mv include/dt-bindings include/dt
>> for arch in arch/*; do
>>   dts=$arch/boot/dts
>>   if [ -d $dts ]; then
>>      a=include/dt/$(basename $arch)
>>      ln -s $dts $a
>>      git add $a
>>   fi
>> done
>> ... fixup scripts/Makefile.lib ...
>> git commit
>
> That would just break every existing include in dts files.

It doesn't break dts includes if done together with a change in -I,
but it might break includes from the driver side (or needs another -I
there).

>
> Another idea. Could kbuild create all the symlinks at build time instead?

I considered that, but given that we're talking about a few soft links
that we need to find a good home for, it seemed like overkill that
adds magic to the build process. Having somehting that is easily
discovered when looking around the source tree is a lot better.

I looked around the tree for suitable homes for this directory of
links, and the least out-of-place I could find was under scripts/dtc.
You even have a script for uprevving the imported dtc sources, so it's
not like it's causing any problems from that point of view. But I do
agree that it's not ideal -- it was just the least bad option I could
find at the time. Better suggestions are welcome.

-Olof
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:27       ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 15:27 UTC (permalink / raw)
  To: Rob Herring
  Cc: Russell King - ARM Linux, linux-kernel, linux-arm-kernel,
	devicetree, Heiko Stuebner, Mark Rutland, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>> 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?
>>
>> I don't think that works.
>>
>> The include path used is "include", which means that we force people
>> to use:
>>
>> #include <dt-bindings/foo.dtsi>
>
> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
> the include path instead of scripts/dtc/include-prefix/. The only
> downside I can see is people could mistakenly do:
>
> #include <dt-bindings/include-prefix/$arch/foo.dtsi>

I considered that but thought it was a worse solution than the one I
ended up with. It's just confusing to have -I paths that enter an
include hierarchy at different levels like that.

Just see what already happened with the mistake on rockchip, where
Heiko accidentally included <include/dt-include/...> instead -- it'd
be nice to catch that when it happens through tools

>>
>> in their DT files.  This means that we'd need to populate $topdir/include
>> with per-architecture symlinks on top of the 26 or so directories already
>> there, so that:
>>
>> #include <arch/foo.dtsi>
>>
>> would work.  That's quite horrible, since $topdir/include is the main
>> include path for C headers.
>>
>> I guess we could have symlinks inside include/dt-bindings, but that
>> makes the includes:
>>
>> #include <dt-bindings/arch/foo.dtsi>
>>
>> but that's rather absurd because these _aren't_ dt-binding definitions.
>
> True, but the same can be said that "scripts/dtc" is not includes nor
> kernel build infrastructure.
>
>> Maybe what we should do is:
>>
>> mkdir include/dt
>> git mv include/dt-bindings include/dt
>> for arch in arch/*; do
>>   dts=$arch/boot/dts
>>   if [ -d $dts ]; then
>>      a=include/dt/$(basename $arch)
>>      ln -s $dts $a
>>      git add $a
>>   fi
>> done
>> ... fixup scripts/Makefile.lib ...
>> git commit
>
> That would just break every existing include in dts files.

It doesn't break dts includes if done together with a change in -I,
but it might break includes from the driver side (or needs another -I
there).

>
> Another idea. Could kbuild create all the symlinks at build time instead?

I considered that, but given that we're talking about a few soft links
that we need to find a good home for, it seemed like overkill that
adds magic to the build process. Having somehting that is easily
discovered when looking around the source tree is a lot better.

I looked around the tree for suitable homes for this directory of
links, and the least out-of-place I could find was under scripts/dtc.
You even have a script for uprevving the imported dtc sources, so it's
not like it's causing any problems from that point of view. But I do
agree that it's not ideal -- it was just the least bad option I could
find at the time. Better suggestions are welcome.

-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:27       ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 15:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>> 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?
>>
>> I don't think that works.
>>
>> The include path used is "include", which means that we force people
>> to use:
>>
>> #include <dt-bindings/foo.dtsi>
>
> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
> the include path instead of scripts/dtc/include-prefix/. The only
> downside I can see is people could mistakenly do:
>
> #include <dt-bindings/include-prefix/$arch/foo.dtsi>

I considered that but thought it was a worse solution than the one I
ended up with. It's just confusing to have -I paths that enter an
include hierarchy at different levels like that.

Just see what already happened with the mistake on rockchip, where
Heiko accidentally included <include/dt-include/...> instead -- it'd
be nice to catch that when it happens through tools

>>
>> in their DT files.  This means that we'd need to populate $topdir/include
>> with per-architecture symlinks on top of the 26 or so directories already
>> there, so that:
>>
>> #include <arch/foo.dtsi>
>>
>> would work.  That's quite horrible, since $topdir/include is the main
>> include path for C headers.
>>
>> I guess we could have symlinks inside include/dt-bindings, but that
>> makes the includes:
>>
>> #include <dt-bindings/arch/foo.dtsi>
>>
>> but that's rather absurd because these _aren't_ dt-binding definitions.
>
> True, but the same can be said that "scripts/dtc" is not includes nor
> kernel build infrastructure.
>
>> Maybe what we should do is:
>>
>> mkdir include/dt
>> git mv include/dt-bindings include/dt
>> for arch in arch/*; do
>>   dts=$arch/boot/dts
>>   if [ -d $dts ]; then
>>      a=include/dt/$(basename $arch)
>>      ln -s $dts $a
>>      git add $a
>>   fi
>> done
>> ... fixup scripts/Makefile.lib ...
>> git commit
>
> That would just break every existing include in dts files.

It doesn't break dts includes if done together with a change in -I,
but it might break includes from the driver side (or needs another -I
there).

>
> Another idea. Could kbuild create all the symlinks at build time instead?

I considered that, but given that we're talking about a few soft links
that we need to find a good home for, it seemed like overkill that
adds magic to the build process. Having somehting that is easily
discovered when looking around the source tree is a lot better.

I looked around the tree for suitable homes for this directory of
links, and the least out-of-place I could find was under scripts/dtc.
You even have a script for uprevving the imported dtc sources, so it's
not like it's causing any problems from that point of view. But I do
agree that it's not ideal -- it was just the least bad option I could
find at the time. Better suggestions are welcome.

-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
  2017-05-15 15:27       ` Olof Johansson
  (?)
@ 2017-05-15 15:48         ` Russell King - ARM Linux
  -1 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 15:48 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Rob Herring, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> > <linux@armlinux.org.uk> wrote:
> >> Maybe what we should do is:
> >>
> >> mkdir include/dt
> >> git mv include/dt-bindings include/dt
> >> for arch in arch/*; do
> >>   dts=$arch/boot/dts
> >>   if [ -d $dts ]; then
> >>      a=include/dt/$(basename $arch)
> >>      ln -s $dts $a
> >>      git add $a
> >>   fi
> >> done
> >> ... fixup scripts/Makefile.lib ...
> >> git commit
> >
> > That would just break every existing include in dts files.
> 
> It doesn't break dts includes if done together with a change in -I,
> but it might break includes from the driver side (or needs another -I
> there).

Good point.

We could leave include/dt-bindings where it is, and just do the rest of
it for the cross-arch includes.  Slightly less tidy but should have a
lower impact.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:48         ` Russell King - ARM Linux
  0 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 15:48 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Rob Herring, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> > <linux@armlinux.org.uk> wrote:
> >> Maybe what we should do is:
> >>
> >> mkdir include/dt
> >> git mv include/dt-bindings include/dt
> >> for arch in arch/*; do
> >>   dts=$arch/boot/dts
> >>   if [ -d $dts ]; then
> >>      a=include/dt/$(basename $arch)
> >>      ln -s $dts $a
> >>      git add $a
> >>   fi
> >> done
> >> ... fixup scripts/Makefile.lib ...
> >> git commit
> >
> > That would just break every existing include in dts files.
> 
> It doesn't break dts includes if done together with a change in -I,
> but it might break includes from the driver side (or needs another -I
> there).

Good point.

We could leave include/dt-bindings where it is, and just do the rest of
it for the cross-arch includes.  Slightly less tidy but should have a
lower impact.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:48         ` Russell King - ARM Linux
  0 siblings, 0 replies; 48+ messages in thread
From: Russell King - ARM Linux @ 2017-05-15 15:48 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
> > <linux@armlinux.org.uk> wrote:
> >> Maybe what we should do is:
> >>
> >> mkdir include/dt
> >> git mv include/dt-bindings include/dt
> >> for arch in arch/*; do
> >>   dts=$arch/boot/dts
> >>   if [ -d $dts ]; then
> >>      a=include/dt/$(basename $arch)
> >>      ln -s $dts $a
> >>      git add $a
> >>   fi
> >> done
> >> ... fixup scripts/Makefile.lib ...
> >> git commit
> >
> > That would just break every existing include in dts files.
> 
> It doesn't break dts includes if done together with a change in -I,
> but it might break includes from the driver side (or needs another -I
> there).

Good point.

We could leave include/dt-bindings where it is, and just do the rest of
it for the cross-arch includes.  Slightly less tidy but should have a
lower impact.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
  2017-05-15 15:27       ` Olof Johansson
  (?)
@ 2017-05-15 15:52         ` Rob Herring
  -1 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 15:52 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Russell King - ARM Linux, linux-kernel, linux-arm-kernel,
	devicetree, Heiko Stuebner, Mark Rutland, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>> <linux@armlinux.org.uk> wrote:
>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>> 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?
>>>
>>> I don't think that works.
>>>
>>> The include path used is "include", which means that we force people
>>> to use:
>>>
>>> #include <dt-bindings/foo.dtsi>
>>
>> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
>> the include path instead of scripts/dtc/include-prefix/. The only
>> downside I can see is people could mistakenly do:
>>
>> #include <dt-bindings/include-prefix/$arch/foo.dtsi>
>
> I considered that but thought it was a worse solution than the one I
> ended up with. It's just confusing to have -I paths that enter an
> include hierarchy at different levels like that.
>
> Just see what already happened with the mistake on rockchip, where
> Heiko accidentally included <include/dt-include/...> instead -- it'd
> be nice to catch that when it happens through tools
>
>>>
>>> in their DT files.  This means that we'd need to populate $topdir/include
>>> with per-architecture symlinks on top of the 26 or so directories already
>>> there, so that:
>>>
>>> #include <arch/foo.dtsi>
>>>
>>> would work.  That's quite horrible, since $topdir/include is the main
>>> include path for C headers.
>>>
>>> I guess we could have symlinks inside include/dt-bindings, but that
>>> makes the includes:
>>>
>>> #include <dt-bindings/arch/foo.dtsi>
>>>
>>> but that's rather absurd because these _aren't_ dt-binding definitions.
>>
>> True, but the same can be said that "scripts/dtc" is not includes nor
>> kernel build infrastructure.
>>
>>> Maybe what we should do is:
>>>
>>> mkdir include/dt
>>> git mv include/dt-bindings include/dt
>>> for arch in arch/*; do
>>>   dts=$arch/boot/dts
>>>   if [ -d $dts ]; then
>>>      a=include/dt/$(basename $arch)
>>>      ln -s $dts $a
>>>      git add $a
>>>   fi
>>> done
>>> ... fixup scripts/Makefile.lib ...
>>> git commit
>>
>> That would just break every existing include in dts files.
>
> It doesn't break dts includes if done together with a change in -I,
> but it might break includes from the driver side (or needs another -I
> there).

Ah yes, I should have paid attention to the mkdir.

>> Another idea. Could kbuild create all the symlinks at build time instead?
>
> I considered that, but given that we're talking about a few soft links
> that we need to find a good home for, it seemed like overkill that
> adds magic to the build process. Having somehting that is easily
> discovered when looking around the source tree is a lot better.
>
> I looked around the tree for suitable homes for this directory of
> links, and the least out-of-place I could find was under scripts/dtc.
> You even have a script for uprevving the imported dtc sources, so it's
> not like it's causing any problems from that point of view. But I do
> agree that it's not ideal -- it was just the least bad option I could
> find at the time. Better suggestions are welcome.

Fair enough. Like I said, it was only a preference and certainly not
unprecedented. I'll just get less receptive with each addition. :)

When and by whom do you propose merging this?

The only other comment I would have is at some point, we're going to
have overlays that aren't tied to any arch. Where are we going to put
those? Maybe they are tied to some vendor which tends to have most
stuff in $arch and we just continue this band-aid. Or we define some
common location. I bring this up now only because both could use that
location.

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:52         ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 15:52 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Russell King - ARM Linux, linux-kernel, linux-arm-kernel,
	devicetree, Heiko Stuebner, Mark Rutland, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>> <linux@armlinux.org.uk> wrote:
>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>> 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?
>>>
>>> I don't think that works.
>>>
>>> The include path used is "include", which means that we force people
>>> to use:
>>>
>>> #include <dt-bindings/foo.dtsi>
>>
>> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
>> the include path instead of scripts/dtc/include-prefix/. The only
>> downside I can see is people could mistakenly do:
>>
>> #include <dt-bindings/include-prefix/$arch/foo.dtsi>
>
> I considered that but thought it was a worse solution than the one I
> ended up with. It's just confusing to have -I paths that enter an
> include hierarchy at different levels like that.
>
> Just see what already happened with the mistake on rockchip, where
> Heiko accidentally included <include/dt-include/...> instead -- it'd
> be nice to catch that when it happens through tools
>
>>>
>>> in their DT files.  This means that we'd need to populate $topdir/include
>>> with per-architecture symlinks on top of the 26 or so directories already
>>> there, so that:
>>>
>>> #include <arch/foo.dtsi>
>>>
>>> would work.  That's quite horrible, since $topdir/include is the main
>>> include path for C headers.
>>>
>>> I guess we could have symlinks inside include/dt-bindings, but that
>>> makes the includes:
>>>
>>> #include <dt-bindings/arch/foo.dtsi>
>>>
>>> but that's rather absurd because these _aren't_ dt-binding definitions.
>>
>> True, but the same can be said that "scripts/dtc" is not includes nor
>> kernel build infrastructure.
>>
>>> Maybe what we should do is:
>>>
>>> mkdir include/dt
>>> git mv include/dt-bindings include/dt
>>> for arch in arch/*; do
>>>   dts=$arch/boot/dts
>>>   if [ -d $dts ]; then
>>>      a=include/dt/$(basename $arch)
>>>      ln -s $dts $a
>>>      git add $a
>>>   fi
>>> done
>>> ... fixup scripts/Makefile.lib ...
>>> git commit
>>
>> That would just break every existing include in dts files.
>
> It doesn't break dts includes if done together with a change in -I,
> but it might break includes from the driver side (or needs another -I
> there).

Ah yes, I should have paid attention to the mkdir.

>> Another idea. Could kbuild create all the symlinks at build time instead?
>
> I considered that, but given that we're talking about a few soft links
> that we need to find a good home for, it seemed like overkill that
> adds magic to the build process. Having somehting that is easily
> discovered when looking around the source tree is a lot better.
>
> I looked around the tree for suitable homes for this directory of
> links, and the least out-of-place I could find was under scripts/dtc.
> You even have a script for uprevving the imported dtc sources, so it's
> not like it's causing any problems from that point of view. But I do
> agree that it's not ideal -- it was just the least bad option I could
> find at the time. Better suggestions are welcome.

Fair enough. Like I said, it was only a preference and certainly not
unprecedented. I'll just get less receptive with each addition. :)

When and by whom do you propose merging this?

The only other comment I would have is at some point, we're going to
have overlays that aren't tied to any arch. Where are we going to put
those? Maybe they are tied to some vendor which tends to have most
stuff in $arch and we just continue this band-aid. Or we define some
common location. I bring this up now only because both could use that
location.

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 15:52         ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 15:52 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>> <linux@armlinux.org.uk> wrote:
>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>> 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?
>>>
>>> I don't think that works.
>>>
>>> The include path used is "include", which means that we force people
>>> to use:
>>>
>>> #include <dt-bindings/foo.dtsi>
>>
>> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
>> the include path instead of scripts/dtc/include-prefix/. The only
>> downside I can see is people could mistakenly do:
>>
>> #include <dt-bindings/include-prefix/$arch/foo.dtsi>
>
> I considered that but thought it was a worse solution than the one I
> ended up with. It's just confusing to have -I paths that enter an
> include hierarchy at different levels like that.
>
> Just see what already happened with the mistake on rockchip, where
> Heiko accidentally included <include/dt-include/...> instead -- it'd
> be nice to catch that when it happens through tools
>
>>>
>>> in their DT files.  This means that we'd need to populate $topdir/include
>>> with per-architecture symlinks on top of the 26 or so directories already
>>> there, so that:
>>>
>>> #include <arch/foo.dtsi>
>>>
>>> would work.  That's quite horrible, since $topdir/include is the main
>>> include path for C headers.
>>>
>>> I guess we could have symlinks inside include/dt-bindings, but that
>>> makes the includes:
>>>
>>> #include <dt-bindings/arch/foo.dtsi>
>>>
>>> but that's rather absurd because these _aren't_ dt-binding definitions.
>>
>> True, but the same can be said that "scripts/dtc" is not includes nor
>> kernel build infrastructure.
>>
>>> Maybe what we should do is:
>>>
>>> mkdir include/dt
>>> git mv include/dt-bindings include/dt
>>> for arch in arch/*; do
>>>   dts=$arch/boot/dts
>>>   if [ -d $dts ]; then
>>>      a=include/dt/$(basename $arch)
>>>      ln -s $dts $a
>>>      git add $a
>>>   fi
>>> done
>>> ... fixup scripts/Makefile.lib ...
>>> git commit
>>
>> That would just break every existing include in dts files.
>
> It doesn't break dts includes if done together with a change in -I,
> but it might break includes from the driver side (or needs another -I
> there).

Ah yes, I should have paid attention to the mkdir.

>> Another idea. Could kbuild create all the symlinks at build time instead?
>
> I considered that, but given that we're talking about a few soft links
> that we need to find a good home for, it seemed like overkill that
> adds magic to the build process. Having somehting that is easily
> discovered when looking around the source tree is a lot better.
>
> I looked around the tree for suitable homes for this directory of
> links, and the least out-of-place I could find was under scripts/dtc.
> You even have a script for uprevving the imported dtc sources, so it's
> not like it's causing any problems from that point of view. But I do
> agree that it's not ideal -- it was just the least bad option I could
> find at the time. Better suggestions are welcome.

Fair enough. Like I said, it was only a preference and certainly not
unprecedented. I'll just get less receptive with each addition. :)

When and by whom do you propose merging this?

The only other comment I would have is at some point, we're going to
have overlays that aren't tied to any arch. Where are we going to put
those? Maybe they are tied to some vendor which tends to have most
stuff in $arch and we just continue this band-aid. Or we define some
common location. I bring this up now only because both could use that
location.

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
  2017-05-15 15:52         ` Rob Herring
  (?)
@ 2017-05-15 16:09           ` Olof Johansson
  -1 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 16:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Russell King - ARM Linux, linux-kernel, linux-arm-kernel,
	devicetree, Heiko Stuebner, Mark Rutland, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 8:52 AM, Rob Herring <robh+dt@kernel.org> wrote:
> On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>> <linux@armlinux.org.uk> wrote:
>>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>>> 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?
>>>>
>>>> I don't think that works.
>>>>
>>>> The include path used is "include", which means that we force people
>>>> to use:
>>>>
>>>> #include <dt-bindings/foo.dtsi>
>>>
>>> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
>>> the include path instead of scripts/dtc/include-prefix/. The only
>>> downside I can see is people could mistakenly do:
>>>
>>> #include <dt-bindings/include-prefix/$arch/foo.dtsi>
>>
>> I considered that but thought it was a worse solution than the one I
>> ended up with. It's just confusing to have -I paths that enter an
>> include hierarchy at different levels like that.
>>
>> Just see what already happened with the mistake on rockchip, where
>> Heiko accidentally included <include/dt-include/...> instead -- it'd
>> be nice to catch that when it happens through tools
>>
>>>>
>>>> in their DT files.  This means that we'd need to populate $topdir/include
>>>> with per-architecture symlinks on top of the 26 or so directories already
>>>> there, so that:
>>>>
>>>> #include <arch/foo.dtsi>
>>>>
>>>> would work.  That's quite horrible, since $topdir/include is the main
>>>> include path for C headers.
>>>>
>>>> I guess we could have symlinks inside include/dt-bindings, but that
>>>> makes the includes:
>>>>
>>>> #include <dt-bindings/arch/foo.dtsi>
>>>>
>>>> but that's rather absurd because these _aren't_ dt-binding definitions.
>>>
>>> True, but the same can be said that "scripts/dtc" is not includes nor
>>> kernel build infrastructure.
>>>
>>>> Maybe what we should do is:
>>>>
>>>> mkdir include/dt
>>>> git mv include/dt-bindings include/dt
>>>> for arch in arch/*; do
>>>>   dts=$arch/boot/dts
>>>>   if [ -d $dts ]; then
>>>>      a=include/dt/$(basename $arch)
>>>>      ln -s $dts $a
>>>>      git add $a
>>>>   fi
>>>> done
>>>> ... fixup scripts/Makefile.lib ...
>>>> git commit
>>>
>>> That would just break every existing include in dts files.
>>
>> It doesn't break dts includes if done together with a change in -I,
>> but it might break includes from the driver side (or needs another -I
>> there).
>
> Ah yes, I should have paid attention to the mkdir.
>
>>> Another idea. Could kbuild create all the symlinks at build time instead?
>>
>> I considered that, but given that we're talking about a few soft links
>> that we need to find a good home for, it seemed like overkill that
>> adds magic to the build process. Having somehting that is easily
>> discovered when looking around the source tree is a lot better.
>>
>> I looked around the tree for suitable homes for this directory of
>> links, and the least out-of-place I could find was under scripts/dtc.
>> You even have a script for uprevving the imported dtc sources, so it's
>> not like it's causing any problems from that point of view. But I do
>> agree that it's not ideal -- it was just the least bad option I could
>> find at the time. Better suggestions are welcome.
>
> Fair enough. Like I said, it was only a preference and certainly not
> unprecedented. I'll just get less receptive with each addition. :)

I'm familiar with that feeling. :)

> When and by whom do you propose merging this?

Given that it crosses architectures but fixes my mistaken recursive
linking I was planning on either including it in arm-soc fixes or for
full visibility just send it as a patch to Linus. Mind giving me an
ack?

Or, if you prefer to merge it that's fine with me too. I'd like to fix
the tree for people who are seeing the problems soon though.

> The only other comment I would have is at some point, we're going to
> have overlays that aren't tied to any arch. Where are we going to put
> those? Maybe they are tied to some vendor which tends to have most
> stuff in $arch and we just continue this band-aid. Or we define some
> common location. I bring this up now only because both could use that
> location.

Those are good questions. What kind of common overlays are you
anticipating? Things like fragments describing connectors, etc?

Rule so far has been that the first arch to introduce something keeps
it (that's between arm/arm64): Mostly it's been arm64 referencing arm
contents so far.

I guess we could introduce the concept of a common/ directory
somewhere. As you say, finding a good home for it isn't 100% obvious
today, and we should make sure ownership of the directory is clear
since we've seen things go badly when patches get merged through too
many paths on these files.


-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 16:09           ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 16:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Russell King - ARM Linux, linux-kernel, linux-arm-kernel,
	devicetree, Heiko Stuebner, Mark Rutland, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 8:52 AM, Rob Herring <robh+dt@kernel.org> wrote:
> On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>> <linux@armlinux.org.uk> wrote:
>>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>>> 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?
>>>>
>>>> I don't think that works.
>>>>
>>>> The include path used is "include", which means that we force people
>>>> to use:
>>>>
>>>> #include <dt-bindings/foo.dtsi>
>>>
>>> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
>>> the include path instead of scripts/dtc/include-prefix/. The only
>>> downside I can see is people could mistakenly do:
>>>
>>> #include <dt-bindings/include-prefix/$arch/foo.dtsi>
>>
>> I considered that but thought it was a worse solution than the one I
>> ended up with. It's just confusing to have -I paths that enter an
>> include hierarchy at different levels like that.
>>
>> Just see what already happened with the mistake on rockchip, where
>> Heiko accidentally included <include/dt-include/...> instead -- it'd
>> be nice to catch that when it happens through tools
>>
>>>>
>>>> in their DT files.  This means that we'd need to populate $topdir/include
>>>> with per-architecture symlinks on top of the 26 or so directories already
>>>> there, so that:
>>>>
>>>> #include <arch/foo.dtsi>
>>>>
>>>> would work.  That's quite horrible, since $topdir/include is the main
>>>> include path for C headers.
>>>>
>>>> I guess we could have symlinks inside include/dt-bindings, but that
>>>> makes the includes:
>>>>
>>>> #include <dt-bindings/arch/foo.dtsi>
>>>>
>>>> but that's rather absurd because these _aren't_ dt-binding definitions.
>>>
>>> True, but the same can be said that "scripts/dtc" is not includes nor
>>> kernel build infrastructure.
>>>
>>>> Maybe what we should do is:
>>>>
>>>> mkdir include/dt
>>>> git mv include/dt-bindings include/dt
>>>> for arch in arch/*; do
>>>>   dts=$arch/boot/dts
>>>>   if [ -d $dts ]; then
>>>>      a=include/dt/$(basename $arch)
>>>>      ln -s $dts $a
>>>>      git add $a
>>>>   fi
>>>> done
>>>> ... fixup scripts/Makefile.lib ...
>>>> git commit
>>>
>>> That would just break every existing include in dts files.
>>
>> It doesn't break dts includes if done together with a change in -I,
>> but it might break includes from the driver side (or needs another -I
>> there).
>
> Ah yes, I should have paid attention to the mkdir.
>
>>> Another idea. Could kbuild create all the symlinks at build time instead?
>>
>> I considered that, but given that we're talking about a few soft links
>> that we need to find a good home for, it seemed like overkill that
>> adds magic to the build process. Having somehting that is easily
>> discovered when looking around the source tree is a lot better.
>>
>> I looked around the tree for suitable homes for this directory of
>> links, and the least out-of-place I could find was under scripts/dtc.
>> You even have a script for uprevving the imported dtc sources, so it's
>> not like it's causing any problems from that point of view. But I do
>> agree that it's not ideal -- it was just the least bad option I could
>> find at the time. Better suggestions are welcome.
>
> Fair enough. Like I said, it was only a preference and certainly not
> unprecedented. I'll just get less receptive with each addition. :)

I'm familiar with that feeling. :)

> When and by whom do you propose merging this?

Given that it crosses architectures but fixes my mistaken recursive
linking I was planning on either including it in arm-soc fixes or for
full visibility just send it as a patch to Linus. Mind giving me an
ack?

Or, if you prefer to merge it that's fine with me too. I'd like to fix
the tree for people who are seeing the problems soon though.

> The only other comment I would have is at some point, we're going to
> have overlays that aren't tied to any arch. Where are we going to put
> those? Maybe they are tied to some vendor which tends to have most
> stuff in $arch and we just continue this band-aid. Or we define some
> common location. I bring this up now only because both could use that
> location.

Those are good questions. What kind of common overlays are you
anticipating? Things like fragments describing connectors, etc?

Rule so far has been that the first arch to introduce something keeps
it (that's between arm/arm64): Mostly it's been arm64 referencing arm
contents so far.

I guess we could introduce the concept of a common/ directory
somewhere. As you say, finding a good home for it isn't 100% obvious
today, and we should make sure ownership of the directory is clear
since we've seen things go badly when patches get merged through too
many paths on these files.


-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 16:09           ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 16:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 8:52 AM, Rob Herring <robh+dt@kernel.org> wrote:
> On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>> <linux@armlinux.org.uk> wrote:
>>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>>> 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?
>>>>
>>>> I don't think that works.
>>>>
>>>> The include path used is "include", which means that we force people
>>>> to use:
>>>>
>>>> #include <dt-bindings/foo.dtsi>
>>>
>>> No, I was thinking you'd add include/dt-bindings/include-prefix/ to
>>> the include path instead of scripts/dtc/include-prefix/. The only
>>> downside I can see is people could mistakenly do:
>>>
>>> #include <dt-bindings/include-prefix/$arch/foo.dtsi>
>>
>> I considered that but thought it was a worse solution than the one I
>> ended up with. It's just confusing to have -I paths that enter an
>> include hierarchy at different levels like that.
>>
>> Just see what already happened with the mistake on rockchip, where
>> Heiko accidentally included <include/dt-include/...> instead -- it'd
>> be nice to catch that when it happens through tools
>>
>>>>
>>>> in their DT files.  This means that we'd need to populate $topdir/include
>>>> with per-architecture symlinks on top of the 26 or so directories already
>>>> there, so that:
>>>>
>>>> #include <arch/foo.dtsi>
>>>>
>>>> would work.  That's quite horrible, since $topdir/include is the main
>>>> include path for C headers.
>>>>
>>>> I guess we could have symlinks inside include/dt-bindings, but that
>>>> makes the includes:
>>>>
>>>> #include <dt-bindings/arch/foo.dtsi>
>>>>
>>>> but that's rather absurd because these _aren't_ dt-binding definitions.
>>>
>>> True, but the same can be said that "scripts/dtc" is not includes nor
>>> kernel build infrastructure.
>>>
>>>> Maybe what we should do is:
>>>>
>>>> mkdir include/dt
>>>> git mv include/dt-bindings include/dt
>>>> for arch in arch/*; do
>>>>   dts=$arch/boot/dts
>>>>   if [ -d $dts ]; then
>>>>      a=include/dt/$(basename $arch)
>>>>      ln -s $dts $a
>>>>      git add $a
>>>>   fi
>>>> done
>>>> ... fixup scripts/Makefile.lib ...
>>>> git commit
>>>
>>> That would just break every existing include in dts files.
>>
>> It doesn't break dts includes if done together with a change in -I,
>> but it might break includes from the driver side (or needs another -I
>> there).
>
> Ah yes, I should have paid attention to the mkdir.
>
>>> Another idea. Could kbuild create all the symlinks at build time instead?
>>
>> I considered that, but given that we're talking about a few soft links
>> that we need to find a good home for, it seemed like overkill that
>> adds magic to the build process. Having somehting that is easily
>> discovered when looking around the source tree is a lot better.
>>
>> I looked around the tree for suitable homes for this directory of
>> links, and the least out-of-place I could find was under scripts/dtc.
>> You even have a script for uprevving the imported dtc sources, so it's
>> not like it's causing any problems from that point of view. But I do
>> agree that it's not ideal -- it was just the least bad option I could
>> find at the time. Better suggestions are welcome.
>
> Fair enough. Like I said, it was only a preference and certainly not
> unprecedented. I'll just get less receptive with each addition. :)

I'm familiar with that feeling. :)

> When and by whom do you propose merging this?

Given that it crosses architectures but fixes my mistaken recursive
linking I was planning on either including it in arm-soc fixes or for
full visibility just send it as a patch to Linus. Mind giving me an
ack?

Or, if you prefer to merge it that's fine with me too. I'd like to fix
the tree for people who are seeing the problems soon though.

> The only other comment I would have is at some point, we're going to
> have overlays that aren't tied to any arch. Where are we going to put
> those? Maybe they are tied to some vendor which tends to have most
> stuff in $arch and we just continue this band-aid. Or we define some
> common location. I bring this up now only because both could use that
> location.

Those are good questions. What kind of common overlays are you
anticipating? Things like fragments describing connectors, etc?

Rule so far has been that the first arch to introduce something keeps
it (that's between arm/arm64): Mostly it's been arm64 referencing arm
contents so far.

I guess we could introduce the concept of a common/ directory
somewhere. As you say, finding a good home for it isn't 100% obvious
today, and we should make sure ownership of the directory is clear
since we've seen things go badly when patches get merged through too
many paths on these files.


-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 16:40             ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 16:40 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Russell King - ARM Linux, linux-kernel, linux-arm-kernel,
	devicetree, Heiko Stuebner, Mark Rutland, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 11:09 AM, Olof Johansson <olof@lixom.net> wrote:
> On Mon, May 15, 2017 at 8:52 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
>>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>>> <linux@armlinux.org.uk> wrote:
>>>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>>>> 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?

[...]

>>>> Another idea. Could kbuild create all the symlinks at build time instead?
>>>
>>> I considered that, but given that we're talking about a few soft links
>>> that we need to find a good home for, it seemed like overkill that
>>> adds magic to the build process. Having somehting that is easily
>>> discovered when looking around the source tree is a lot better.
>>>
>>> I looked around the tree for suitable homes for this directory of
>>> links, and the least out-of-place I could find was under scripts/dtc.
>>> You even have a script for uprevving the imported dtc sources, so it's
>>> not like it's causing any problems from that point of view. But I do
>>> agree that it's not ideal -- it was just the least bad option I could
>>> find at the time. Better suggestions are welcome.
>>
>> Fair enough. Like I said, it was only a preference and certainly not
>> unprecedented. I'll just get less receptive with each addition. :)
>
> I'm familiar with that feeling. :)
>
>> When and by whom do you propose merging this?
>
> Given that it crosses architectures but fixes my mistaken recursive
> linking I was planning on either including it in arm-soc fixes or for
> full visibility just send it as a patch to Linus. Mind giving me an
> ack?

Given what it fixes, arm-soc probably makes the most sense.

Acked-by: Rob Herring <robh@kernel.org>

> Or, if you prefer to merge it that's fine with me too. I'd like to fix
> the tree for people who are seeing the problems soon though.
>
>> The only other comment I would have is at some point, we're going to
>> have overlays that aren't tied to any arch. Where are we going to put
>> those? Maybe they are tied to some vendor which tends to have most
>> stuff in $arch and we just continue this band-aid. Or we define some
>> common location. I bring this up now only because both could use that
>> location.
>
> Those are good questions. What kind of common overlays are you
> anticipating? Things like fragments describing connectors, etc?

Daughterboards on connectors is one. Another somewhat different case
is non-probeable buses hanging off of probeable devices where the host
system may not even be DT based. For example, GPIOs, I2C, UART, etc.
devices behind a USB serial chip and standard USB connector.

> Rule so far has been that the first arch to introduce something keeps
> it (that's between arm/arm64): Mostly it's been arm64 referencing arm
> contents so far.
>
> I guess we could introduce the concept of a common/ directory
> somewhere. As you say, finding a good home for it isn't 100% obvious
> today, and we should make sure ownership of the directory is clear
> since we've seen things go badly when patches get merged through too
> many paths on these files.

Agreed. I'm happy for you to own that. ;)

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 16:40             ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 16:40 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Russell King - ARM Linux, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 11:09 AM, Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> wrote:
> On Mon, May 15, 2017 at 8:52 AM, Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
>> On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> wrote:
>>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
>>>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>>> <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
>>>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>>>> 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?

[...]

>>>> Another idea. Could kbuild create all the symlinks at build time instead?
>>>
>>> I considered that, but given that we're talking about a few soft links
>>> that we need to find a good home for, it seemed like overkill that
>>> adds magic to the build process. Having somehting that is easily
>>> discovered when looking around the source tree is a lot better.
>>>
>>> I looked around the tree for suitable homes for this directory of
>>> links, and the least out-of-place I could find was under scripts/dtc.
>>> You even have a script for uprevving the imported dtc sources, so it's
>>> not like it's causing any problems from that point of view. But I do
>>> agree that it's not ideal -- it was just the least bad option I could
>>> find at the time. Better suggestions are welcome.
>>
>> Fair enough. Like I said, it was only a preference and certainly not
>> unprecedented. I'll just get less receptive with each addition. :)
>
> I'm familiar with that feeling. :)
>
>> When and by whom do you propose merging this?
>
> Given that it crosses architectures but fixes my mistaken recursive
> linking I was planning on either including it in arm-soc fixes or for
> full visibility just send it as a patch to Linus. Mind giving me an
> ack?

Given what it fixes, arm-soc probably makes the most sense.

Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>

> Or, if you prefer to merge it that's fine with me too. I'd like to fix
> the tree for people who are seeing the problems soon though.
>
>> The only other comment I would have is at some point, we're going to
>> have overlays that aren't tied to any arch. Where are we going to put
>> those? Maybe they are tied to some vendor which tends to have most
>> stuff in $arch and we just continue this band-aid. Or we define some
>> common location. I bring this up now only because both could use that
>> location.
>
> Those are good questions. What kind of common overlays are you
> anticipating? Things like fragments describing connectors, etc?

Daughterboards on connectors is one. Another somewhat different case
is non-probeable buses hanging off of probeable devices where the host
system may not even be DT based. For example, GPIOs, I2C, UART, etc.
devices behind a USB serial chip and standard USB connector.

> Rule so far has been that the first arch to introduce something keeps
> it (that's between arm/arm64): Mostly it's been arm64 referencing arm
> contents so far.
>
> I guess we could introduce the concept of a common/ directory
> somewhere. As you say, finding a good home for it isn't 100% obvious
> today, and we should make sure ownership of the directory is clear
> since we've seen things go badly when patches get merged through too
> many paths on these files.

Agreed. I'm happy for you to own that. ;)

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 16:40             ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 16:40 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Russell King - ARM Linux, linux-kernel, linux-arm-kernel,
	devicetree, Heiko Stuebner, Mark Rutland, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 11:09 AM, Olof Johansson <olof@lixom.net> wrote:
> On Mon, May 15, 2017 at 8:52 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
>>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>>> <linux@armlinux.org.uk> wrote:
>>>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>>>> 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?

[...]

>>>> Another idea. Could kbuild create all the symlinks at build time instead?
>>>
>>> I considered that, but given that we're talking about a few soft links
>>> that we need to find a good home for, it seemed like overkill that
>>> adds magic to the build process. Having somehting that is easily
>>> discovered when looking around the source tree is a lot better.
>>>
>>> I looked around the tree for suitable homes for this directory of
>>> links, and the least out-of-place I could find was under scripts/dtc.
>>> You even have a script for uprevving the imported dtc sources, so it's
>>> not like it's causing any problems from that point of view. But I do
>>> agree that it's not ideal -- it was just the least bad option I could
>>> find at the time. Better suggestions are welcome.
>>
>> Fair enough. Like I said, it was only a preference and certainly not
>> unprecedented. I'll just get less receptive with each addition. :)
>
> I'm familiar with that feeling. :)
>
>> When and by whom do you propose merging this?
>
> Given that it crosses architectures but fixes my mistaken recursive
> linking I was planning on either including it in arm-soc fixes or for
> full visibility just send it as a patch to Linus. Mind giving me an
> ack?

Given what it fixes, arm-soc probably makes the most sense.

Acked-by: Rob Herring <robh@kernel.org>

> Or, if you prefer to merge it that's fine with me too. I'd like to fix
> the tree for people who are seeing the problems soon though.
>
>> The only other comment I would have is at some point, we're going to
>> have overlays that aren't tied to any arch. Where are we going to put
>> those? Maybe they are tied to some vendor which tends to have most
>> stuff in $arch and we just continue this band-aid. Or we define some
>> common location. I bring this up now only because both could use that
>> location.
>
> Those are good questions. What kind of common overlays are you
> anticipating? Things like fragments describing connectors, etc?

Daughterboards on connectors is one. Another somewhat different case
is non-probeable buses hanging off of probeable devices where the host
system may not even be DT based. For example, GPIOs, I2C, UART, etc.
devices behind a USB serial chip and standard USB connector.

> Rule so far has been that the first arch to introduce something keeps
> it (that's between arm/arm64): Mostly it's been arm64 referencing arm
> contents so far.
>
> I guess we could introduce the concept of a common/ directory
> somewhere. As you say, finding a good home for it isn't 100% obvious
> today, and we should make sure ownership of the directory is clear
> since we've seen things go badly when patches get merged through too
> many paths on these files.

Agreed. I'm happy for you to own that. ;)

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 16:40             ` Rob Herring
  0 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 16:40 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 11:09 AM, Olof Johansson <olof@lixom.net> wrote:
> On Mon, May 15, 2017 at 8:52 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> On Mon, May 15, 2017 at 10:27 AM, Olof Johansson <olof@lixom.net> wrote:
>>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>>> On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>>> <linux@armlinux.org.uk> wrote:
>>>>> On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:
>>>>>> 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?

[...]

>>>> Another idea. Could kbuild create all the symlinks at build time instead?
>>>
>>> I considered that, but given that we're talking about a few soft links
>>> that we need to find a good home for, it seemed like overkill that
>>> adds magic to the build process. Having somehting that is easily
>>> discovered when looking around the source tree is a lot better.
>>>
>>> I looked around the tree for suitable homes for this directory of
>>> links, and the least out-of-place I could find was under scripts/dtc.
>>> You even have a script for uprevving the imported dtc sources, so it's
>>> not like it's causing any problems from that point of view. But I do
>>> agree that it's not ideal -- it was just the least bad option I could
>>> find at the time. Better suggestions are welcome.
>>
>> Fair enough. Like I said, it was only a preference and certainly not
>> unprecedented. I'll just get less receptive with each addition. :)
>
> I'm familiar with that feeling. :)
>
>> When and by whom do you propose merging this?
>
> Given that it crosses architectures but fixes my mistaken recursive
> linking I was planning on either including it in arm-soc fixes or for
> full visibility just send it as a patch to Linus. Mind giving me an
> ack?

Given what it fixes, arm-soc probably makes the most sense.

Acked-by: Rob Herring <robh@kernel.org>

> Or, if you prefer to merge it that's fine with me too. I'd like to fix
> the tree for people who are seeing the problems soon though.
>
>> The only other comment I would have is at some point, we're going to
>> have overlays that aren't tied to any arch. Where are we going to put
>> those? Maybe they are tied to some vendor which tends to have most
>> stuff in $arch and we just continue this band-aid. Or we define some
>> common location. I bring this up now only because both could use that
>> location.
>
> Those are good questions. What kind of common overlays are you
> anticipating? Things like fragments describing connectors, etc?

Daughterboards on connectors is one. Another somewhat different case
is non-probeable buses hanging off of probeable devices where the host
system may not even be DT based. For example, GPIOs, I2C, UART, etc.
devices behind a USB serial chip and standard USB connector.

> Rule so far has been that the first arch to introduce something keeps
> it (that's between arm/arm64): Mostly it's been arm64 referencing arm
> contents so far.
>
> I guess we could introduce the concept of a common/ directory
> somewhere. As you say, finding a good home for it isn't 100% obvious
> today, and we should make sure ownership of the directory is clear
> since we've seen things go badly when patches get merged through too
> many paths on these files.

Agreed. I'm happy for you to own that. ;)

Rob

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 17:04           ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 17:04 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Rob Herring, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 8:48 AM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>> > <linux@armlinux.org.uk> wrote:
>> >> Maybe what we should do is:
>> >>
>> >> mkdir include/dt
>> >> git mv include/dt-bindings include/dt
>> >> for arch in arch/*; do
>> >>   dts=$arch/boot/dts
>> >>   if [ -d $dts ]; then
>> >>      a=include/dt/$(basename $arch)
>> >>      ln -s $dts $a
>> >>      git add $a
>> >>   fi
>> >> done
>> >> ... fixup scripts/Makefile.lib ...
>> >> git commit
>> >
>> > That would just break every existing include in dts files.
>>
>> It doesn't break dts includes if done together with a change in -I,
>> but it might break includes from the driver side (or needs another -I
>> there).
>
> Good point.
>
> We could leave include/dt-bindings where it is, and just do the rest of
> it for the cross-arch includes.  Slightly less tidy but should have a
> lower impact.

I think you're proposing this?
include/dt-bindings
include/dt/$arch -> ../../arch/$arch/boot/dts/

And then having -I$(srctree)include/dt as argument to dtc?

That'd work but have the same drawback as I mentioned to Rob about
having several -I statements at different levels of the include
hierarchy, the same file could be reached through <dt/$arch/> and
<$arch/>. Not a showstopper but since Rob seems to be OK with the link
hierarchy living under scripts/dtc, I'd prefer to just stick to that.

This is all pretty isolated, and if we want to move it somewhere else
later for some reason, we should be able to do so without impacting
DTS and drivers.


-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 17:04           ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 17:04 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Rob Herring, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch

On Mon, May 15, 2017 at 8:48 AM, Russell King - ARM Linux
<linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
> On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
>> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>> > <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
>> >> Maybe what we should do is:
>> >>
>> >> mkdir include/dt
>> >> git mv include/dt-bindings include/dt
>> >> for arch in arch/*; do
>> >>   dts=$arch/boot/dts
>> >>   if [ -d $dts ]; then
>> >>      a=include/dt/$(basename $arch)
>> >>      ln -s $dts $a
>> >>      git add $a
>> >>   fi
>> >> done
>> >> ... fixup scripts/Makefile.lib ...
>> >> git commit
>> >
>> > That would just break every existing include in dts files.
>>
>> It doesn't break dts includes if done together with a change in -I,
>> but it might break includes from the driver side (or needs another -I
>> there).
>
> Good point.
>
> We could leave include/dt-bindings where it is, and just do the rest of
> it for the cross-arch includes.  Slightly less tidy but should have a
> lower impact.

I think you're proposing this?
include/dt-bindings
include/dt/$arch -> ../../arch/$arch/boot/dts/

And then having -I$(srctree)include/dt as argument to dtc?

That'd work but have the same drawback as I mentioned to Rob about
having several -I statements at different levels of the include
hierarchy, the same file could be reached through <dt/$arch/> and
<$arch/>. Not a showstopper but since Rob seems to be OK with the link
hierarchy living under scripts/dtc, I'd prefer to just stick to that.

This is all pretty isolated, and if we want to move it somewhere else
later for some reason, we should be able to do so without impacting
DTS and drivers.


-Olof
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 17:04           ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 17:04 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Rob Herring, linux-kernel, linux-arm-kernel, devicetree,
	Heiko Stuebner, Mark Rutland, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Mon, May 15, 2017 at 8:48 AM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>> > <linux@armlinux.org.uk> wrote:
>> >> Maybe what we should do is:
>> >>
>> >> mkdir include/dt
>> >> git mv include/dt-bindings include/dt
>> >> for arch in arch/*; do
>> >>   dts=$arch/boot/dts
>> >>   if [ -d $dts ]; then
>> >>      a=include/dt/$(basename $arch)
>> >>      ln -s $dts $a
>> >>      git add $a
>> >>   fi
>> >> done
>> >> ... fixup scripts/Makefile.lib ...
>> >> git commit
>> >
>> > That would just break every existing include in dts files.
>>
>> It doesn't break dts includes if done together with a change in -I,
>> but it might break includes from the driver side (or needs another -I
>> there).
>
> Good point.
>
> We could leave include/dt-bindings where it is, and just do the rest of
> it for the cross-arch includes.  Slightly less tidy but should have a
> lower impact.

I think you're proposing this?
include/dt-bindings
include/dt/$arch -> ../../arch/$arch/boot/dts/

And then having -I$(srctree)include/dt as argument to dtc?

That'd work but have the same drawback as I mentioned to Rob about
having several -I statements at different levels of the include
hierarchy, the same file could be reached through <dt/$arch/> and
<$arch/>. Not a showstopper but since Rob seems to be OK with the link
hierarchy living under scripts/dtc, I'd prefer to just stick to that.

This is all pretty isolated, and if we want to move it somewhere else
later for some reason, we should be able to do so without impacting
DTS and drivers.


-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-15 17:04           ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-15 17:04 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 15, 2017 at 8:48 AM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>> > <linux@armlinux.org.uk> wrote:
>> >> Maybe what we should do is:
>> >>
>> >> mkdir include/dt
>> >> git mv include/dt-bindings include/dt
>> >> for arch in arch/*; do
>> >>   dts=$arch/boot/dts
>> >>   if [ -d $dts ]; then
>> >>      a=include/dt/$(basename $arch)
>> >>      ln -s $dts $a
>> >>      git add $a
>> >>   fi
>> >> done
>> >> ... fixup scripts/Makefile.lib ...
>> >> git commit
>> >
>> > That would just break every existing include in dts files.
>>
>> It doesn't break dts includes if done together with a change in -I,
>> but it might break includes from the driver side (or needs another -I
>> there).
>
> Good point.
>
> We could leave include/dt-bindings where it is, and just do the rest of
> it for the cross-arch includes.  Slightly less tidy but should have a
> lower impact.

I think you're proposing this?
include/dt-bindings
include/dt/$arch -> ../../arch/$arch/boot/dts/

And then having -I$(srctree)include/dt as argument to dtc?

That'd work but have the same drawback as I mentioned to Rob about
having several -I statements at different levels of the include
hierarchy, the same file could be reached through <dt/$arch/> and
<$arch/>. Not a showstopper but since Rob seems to be OK with the link
hierarchy living under scripts/dtc, I'd prefer to just stick to that.

This is all pretty isolated, and if we want to move it somewhere else
later for some reason, we should be able to do so without impacting
DTS and drivers.


-Olof

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-17 13:54             ` Masahiro Yamada
  0 siblings, 0 replies; 48+ messages in thread
From: Masahiro Yamada @ 2017-05-17 13:54 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Russell King - ARM Linux, Rob Herring, linux-kernel,
	linux-arm-kernel, devicetree, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch

2017-05-16 2:04 GMT+09:00 Olof Johansson <olof@lixom.net>:
> On Mon, May 15, 2017 at 8:48 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
>> On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
>>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>> > <linux@armlinux.org.uk> wrote:
>>> >> Maybe what we should do is:
>>> >>
>>> >> mkdir include/dt
>>> >> git mv include/dt-bindings include/dt
>>> >> for arch in arch/*; do
>>> >>   dts=$arch/boot/dts
>>> >>   if [ -d $dts ]; then
>>> >>      a=include/dt/$(basename $arch)
>>> >>      ln -s $dts $a
>>> >>      git add $a
>>> >>   fi
>>> >> done
>>> >> ... fixup scripts/Makefile.lib ...
>>> >> git commit
>>> >
>>> > That would just break every existing include in dts files.
>>>
>>> It doesn't break dts includes if done together with a change in -I,
>>> but it might break includes from the driver side (or needs another -I
>>> there).
>>
>> Good point.
>>
>> We could leave include/dt-bindings where it is, and just do the rest of
>> it for the cross-arch includes.  Slightly less tidy but should have a
>> lower impact.
>
> I think you're proposing this?
> include/dt-bindings
> include/dt/$arch -> ../../arch/$arch/boot/dts/
>
> And then having -I$(srctree)include/dt as argument to dtc?
>
> That'd work but have the same drawback as I mentioned to Rob about
> having several -I statements at different levels of the include
> hierarchy, the same file could be reached through <dt/$arch/> and
> <$arch/>. Not a showstopper but since Rob seems to be OK with the link
> hierarchy living under scripts/dtc, I'd prefer to just stick to that.
>
> This is all pretty isolated, and if we want to move it somewhere else
> later for some reason, we should be able to do so without impacting
> DTS and drivers.
>




As I pointed out in
https://patchwork.kernel.org/patch/9726699/

/include/ "arm/foo.dtsi"
will make sense, so I'd like to to improve it some time later.


Anyway, this patch fixes the circular symlinks.

Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>


-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-17 13:54             ` Masahiro Yamada
  0 siblings, 0 replies; 48+ messages in thread
From: Masahiro Yamada @ 2017-05-17 13:54 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Russell King - ARM Linux, Rob Herring,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand

2017-05-16 2:04 GMT+09:00 Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org>:
> On Mon, May 15, 2017 at 8:48 AM, Russell King - ARM Linux
> <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
>> On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
>>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
>>> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>> > <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
>>> >> Maybe what we should do is:
>>> >>
>>> >> mkdir include/dt
>>> >> git mv include/dt-bindings include/dt
>>> >> for arch in arch/*; do
>>> >>   dts=$arch/boot/dts
>>> >>   if [ -d $dts ]; then
>>> >>      a=include/dt/$(basename $arch)
>>> >>      ln -s $dts $a
>>> >>      git add $a
>>> >>   fi
>>> >> done
>>> >> ... fixup scripts/Makefile.lib ...
>>> >> git commit
>>> >
>>> > That would just break every existing include in dts files.
>>>
>>> It doesn't break dts includes if done together with a change in -I,
>>> but it might break includes from the driver side (or needs another -I
>>> there).
>>
>> Good point.
>>
>> We could leave include/dt-bindings where it is, and just do the rest of
>> it for the cross-arch includes.  Slightly less tidy but should have a
>> lower impact.
>
> I think you're proposing this?
> include/dt-bindings
> include/dt/$arch -> ../../arch/$arch/boot/dts/
>
> And then having -I$(srctree)include/dt as argument to dtc?
>
> That'd work but have the same drawback as I mentioned to Rob about
> having several -I statements at different levels of the include
> hierarchy, the same file could be reached through <dt/$arch/> and
> <$arch/>. Not a showstopper but since Rob seems to be OK with the link
> hierarchy living under scripts/dtc, I'd prefer to just stick to that.
>
> This is all pretty isolated, and if we want to move it somewhere else
> later for some reason, we should be able to do so without impacting
> DTS and drivers.
>




As I pointed out in
https://patchwork.kernel.org/patch/9726699/

/include/ "arm/foo.dtsi"
will make sense, so I'd like to to improve it some time later.


Anyway, this patch fixes the circular symlinks.

Reviewed-by: Masahiro Yamada <yamada.masahiro-uWyLwvC0a2jby3iVrkZq2A@public.gmane.org>


-- 
Best Regards
Masahiro Yamada
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-17 13:54             ` Masahiro Yamada
  0 siblings, 0 replies; 48+ messages in thread
From: Masahiro Yamada @ 2017-05-17 13:54 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Russell King - ARM Linux, Rob Herring, linux-kernel,
	linux-arm-kernel, devicetree, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch

2017-05-16 2:04 GMT+09:00 Olof Johansson <olof@lixom.net>:
> On Mon, May 15, 2017 at 8:48 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
>> On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
>>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>> > <linux@armlinux.org.uk> wrote:
>>> >> Maybe what we should do is:
>>> >>
>>> >> mkdir include/dt
>>> >> git mv include/dt-bindings include/dt
>>> >> for arch in arch/*; do
>>> >>   dts=$arch/boot/dts
>>> >>   if [ -d $dts ]; then
>>> >>      a=include/dt/$(basename $arch)
>>> >>      ln -s $dts $a
>>> >>      git add $a
>>> >>   fi
>>> >> done
>>> >> ... fixup scripts/Makefile.lib ...
>>> >> git commit
>>> >
>>> > That would just break every existing include in dts files.
>>>
>>> It doesn't break dts includes if done together with a change in -I,
>>> but it might break includes from the driver side (or needs another -I
>>> there).
>>
>> Good point.
>>
>> We could leave include/dt-bindings where it is, and just do the rest of
>> it for the cross-arch includes.  Slightly less tidy but should have a
>> lower impact.
>
> I think you're proposing this?
> include/dt-bindings
> include/dt/$arch -> ../../arch/$arch/boot/dts/
>
> And then having -I$(srctree)include/dt as argument to dtc?
>
> That'd work but have the same drawback as I mentioned to Rob about
> having several -I statements at different levels of the include
> hierarchy, the same file could be reached through <dt/$arch/> and
> <$arch/>. Not a showstopper but since Rob seems to be OK with the link
> hierarchy living under scripts/dtc, I'd prefer to just stick to that.
>
> This is all pretty isolated, and if we want to move it somewhere else
> later for some reason, we should be able to do so without impacting
> DTS and drivers.
>




As I pointed out in
https://patchwork.kernel.org/patch/9726699/

/include/ "arm/foo.dtsi"
will make sense, so I'd like to to improve it some time later.


Anyway, this patch fixes the circular symlinks.

Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>


-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-17 13:54             ` Masahiro Yamada
  0 siblings, 0 replies; 48+ messages in thread
From: Masahiro Yamada @ 2017-05-17 13:54 UTC (permalink / raw)
  To: linux-arm-kernel

2017-05-16 2:04 GMT+09:00 Olof Johansson <olof@lixom.net>:
> On Mon, May 15, 2017 at 8:48 AM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
>> On Mon, May 15, 2017 at 08:27:54AM -0700, Olof Johansson wrote:
>>> On Mon, May 15, 2017 at 7:47 AM, Rob Herring <robh+dt@kernel.org> wrote:
>>> > On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux
>>> > <linux@armlinux.org.uk> wrote:
>>> >> Maybe what we should do is:
>>> >>
>>> >> mkdir include/dt
>>> >> git mv include/dt-bindings include/dt
>>> >> for arch in arch/*; do
>>> >>   dts=$arch/boot/dts
>>> >>   if [ -d $dts ]; then
>>> >>      a=include/dt/$(basename $arch)
>>> >>      ln -s $dts $a
>>> >>      git add $a
>>> >>   fi
>>> >> done
>>> >> ... fixup scripts/Makefile.lib ...
>>> >> git commit
>>> >
>>> > That would just break every existing include in dts files.
>>>
>>> It doesn't break dts includes if done together with a change in -I,
>>> but it might break includes from the driver side (or needs another -I
>>> there).
>>
>> Good point.
>>
>> We could leave include/dt-bindings where it is, and just do the rest of
>> it for the cross-arch includes.  Slightly less tidy but should have a
>> lower impact.
>
> I think you're proposing this?
> include/dt-bindings
> include/dt/$arch -> ../../arch/$arch/boot/dts/
>
> And then having -I$(srctree)include/dt as argument to dtc?
>
> That'd work but have the same drawback as I mentioned to Rob about
> having several -I statements at different levels of the include
> hierarchy, the same file could be reached through <dt/$arch/> and
> <$arch/>. Not a showstopper but since Rob seems to be OK with the link
> hierarchy living under scripts/dtc, I'd prefer to just stick to that.
>
> This is all pretty isolated, and if we want to move it somewhere else
> later for some reason, we should be able to do so without impacting
> DTS and drivers.
>




As I pointed out in
https://patchwork.kernel.org/patch/9726699/

/include/ "arm/foo.dtsi"
will make sense, so I'd like to to improve it some time later.


Anyway, this patch fixes the circular symlinks.

Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>


-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-17 14:22             ` Geert Uytterhoeven
  0 siblings, 0 replies; 48+ messages in thread
From: Geert Uytterhoeven @ 2017-05-17 14:22 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Rob Herring, Russell King - ARM Linux, linux-kernel,
	linux-arm-kernel, devicetree, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch,
	Pantelis Antoniou

Hi Olof,

On Mon, May 15, 2017 at 6:09 PM, Olof Johansson <olof@lixom.net> wrote:
>> The only other comment I would have is at some point, we're going to
>> have overlays that aren't tied to any arch. Where are we going to put
>> those? Maybe they are tied to some vendor which tends to have most
>> stuff in $arch and we just continue this band-aid. Or we define some
>> common location. I bring this up now only because both could use that
>> location.
>
> Those are good questions. What kind of common overlays are you
> anticipating? Things like fragments describing connectors, etc?

I'm mostly using overlays to describe custom test hardware that
is connection to expansion connectors on standard development boards.
These fall into one of two classes:
  1. Overlays enabling an on-SoC device and configuring access to it from
     an expansion connector,
  2. Overlays describing hardware connected to a device from class1.

Class 1 overlays are SoC and board-specific, so they belong in e.g.
arch/arm/boot/dts/.
Class 2 overlays are more universal (depending on what they extend; Pantelis'
connectors work may help here), so they can be shared between architectures.

Other people may have other use cases.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-17 14:22             ` Geert Uytterhoeven
  0 siblings, 0 replies; 48+ messages in thread
From: Geert Uytterhoeven @ 2017-05-17 14:22 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Rob Herring, Russell King - ARM Linux,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand

Hi Olof,

On Mon, May 15, 2017 at 6:09 PM, Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> wrote:
>> The only other comment I would have is at some point, we're going to
>> have overlays that aren't tied to any arch. Where are we going to put
>> those? Maybe they are tied to some vendor which tends to have most
>> stuff in $arch and we just continue this band-aid. Or we define some
>> common location. I bring this up now only because both could use that
>> location.
>
> Those are good questions. What kind of common overlays are you
> anticipating? Things like fragments describing connectors, etc?

I'm mostly using overlays to describe custom test hardware that
is connection to expansion connectors on standard development boards.
These fall into one of two classes:
  1. Overlays enabling an on-SoC device and configuring access to it from
     an expansion connector,
  2. Overlays describing hardware connected to a device from class1.

Class 1 overlays are SoC and board-specific, so they belong in e.g.
arch/arm/boot/dts/.
Class 2 overlays are more universal (depending on what they extend; Pantelis'
connectors work may help here), so they can be shared between architectures.

Other people may have other use cases.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-17 14:22             ` Geert Uytterhoeven
  0 siblings, 0 replies; 48+ messages in thread
From: Geert Uytterhoeven @ 2017-05-17 14:22 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Rob Herring, Russell King - ARM Linux, linux-kernel,
	linux-arm-kernel, devicetree, Heiko Stuebner, Mark Rutland,
	Catalin Marinas, Will Deacon, Mikael Starvik, Jesper Nilsson,
	James Hogan, Ralf Baechle, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Frank Rowand, linux-arch,
	Pantelis Antoniou

Hi Olof,

On Mon, May 15, 2017 at 6:09 PM, Olof Johansson <olof@lixom.net> wrote:
>> The only other comment I would have is at some point, we're going to
>> have overlays that aren't tied to any arch. Where are we going to put
>> those? Maybe they are tied to some vendor which tends to have most
>> stuff in $arch and we just continue this band-aid. Or we define some
>> common location. I bring this up now only because both could use that
>> location.
>
> Those are good questions. What kind of common overlays are you
> anticipating? Things like fragments describing connectors, etc?

I'm mostly using overlays to describe custom test hardware that
is connection to expansion connectors on standard development boards.
These fall into one of two classes:
  1. Overlays enabling an on-SoC device and configuring access to it from
     an expansion connector,
  2. Overlays describing hardware connected to a device from class1.

Class 1 overlays are SoC and board-specific, so they belong in e.g.
arch/arm/boot/dts/.
Class 2 overlays are more universal (depending on what they extend; Pantelis'
connectors work may help here), so they can be shared between architectures.

Other people may have other use cases.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-17 14:22             ` Geert Uytterhoeven
  0 siblings, 0 replies; 48+ messages in thread
From: Geert Uytterhoeven @ 2017-05-17 14:22 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Olof,

On Mon, May 15, 2017 at 6:09 PM, Olof Johansson <olof@lixom.net> wrote:
>> The only other comment I would have is at some point, we're going to
>> have overlays that aren't tied to any arch. Where are we going to put
>> those? Maybe they are tied to some vendor which tends to have most
>> stuff in $arch and we just continue this band-aid. Or we define some
>> common location. I bring this up now only because both could use that
>> location.
>
> Those are good questions. What kind of common overlays are you
> anticipating? Things like fragments describing connectors, etc?

I'm mostly using overlays to describe custom test hardware that
is connection to expansion connectors on standard development boards.
These fall into one of two classes:
  1. Overlays enabling an on-SoC device and configuring access to it from
     an expansion connector,
  2. Overlays describing hardware connected to a device from class1.

Class 1 overlays are SoC and board-specific, so they belong in e.g.
arch/arm/boot/dts/.
Class 2 overlays are more universal (depending on what they extend; Pantelis'
connectors work may help here), so they can be shared between architectures.

Other people may have other use cases.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
  2017-05-13  3:34 ` Olof Johansson
  (?)
  (?)
@ 2017-05-15 12:53 ` Rob Herring
  -1 siblings, 0 replies; 48+ messages in thread
From: Rob Herring @ 2017-05-15 12:53 UTC (permalink / raw)
  To: Olof Johansson
  Cc: linux-kernel, linux-arm-kernel, devicetree, Heiko Stuebner,
	Mark Rutland, Russell King, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

On Fri, May 12, 2017 at 10:34 PM, Olof Johansson <olof@lixom.net> 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@armlinux.org.uk>
> Reported-by: Omar Sandoval <osandov@osandov.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Mikael Starvik <starvik@axis.com>
> Cc: Jesper Nilsson <jesper.nilsson@axis.com>
> Cc: James Hogan <james.hogan@imgtec.com>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Frank Rowand <frowand.list@gmail.com>
> Cc: linux-arch <linux-arch@vger.kernel.org>
> Signed-off-by: Olof Johansson <olof@lixom.net>
> ---
>  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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
  2017-05-13  3:34 ` Olof Johansson
  (?)
@ 2017-05-13 16:18   ` Heiko Stuebner
  -1 siblings, 0 replies; 48+ messages in thread
From: Heiko Stuebner @ 2017-05-13 16:18 UTC (permalink / raw)
  To: Olof Johansson
  Cc: linux-kernel, linux-arm-kernel, devicetree, Rob Herring,
	Mark Rutland, Russell King, Catalin Marinas, Will Deacon,
	Mikael Starvik, Jesper Nilsson, James Hogan, Ralf Baechle,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Frank Rowand, linux-arch

Hi Olof,

Am Freitag, 12. Mai 2017, 20:34:31 CEST schrieb Olof Johansson:
> 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@armlinux.org.uk>
> Reported-by: Omar Sandoval <osandov@osandov.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Mikael Starvik <starvik@axis.com>
> Cc: Jesper Nilsson <jesper.nilsson@axis.com>
> Cc: James Hogan <james.hogan@imgtec.com>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Frank Rowand <frowand.list@gmail.com>
> Cc: linux-arch <linux-arch@vger.kernel.org>
> Signed-off-by: Olof Johansson <olof@lixom.net>

change itself looks good to me and also works, so

Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Heiko Stuebner <heiko@sntech.de>

But we also have an overlooked glitch in the new rk3399-gru devicetrees
that surfaces with this patch applied.

../arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts:47:57: fatal error: include/dt-bindings/input/linux-event-codes.h: File or directory not found
 #include <include/dt-bindings/input/linux-event-codes.h>

so need the patch from Ian Campbell 
"arm64: dts: rockchip: Drop explicit "include/" prefix from #include" [0]
in front to not cause other build breakage.

So if applicable, both patches should go in together, with the gru patch
in front and I've added my Reviewed-by there if someone else is doing it.


Heiko

[0] https://www.spinics.net/lists/arm-kernel/msg580835.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-13 16:18   ` Heiko Stuebner
  0 siblings, 0 replies; 48+ messages in thread
From: Heiko Stuebner @ 2017-05-13 16:18 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Mark Rutland, devicetree, Jesper Nilsson, James Hogan,
	Catalin Marinas, Will Deacon, linux-kernel, Ralf Baechle,
	Russell King, Mikael Starvik, Rob Herring, Paul Mackerras,
	Michael Ellerman, Benjamin Herrenschmidt, linux-arch,
	Frank Rowand, linux-arm-kernel

Hi Olof,

Am Freitag, 12. Mai 2017, 20:34:31 CEST schrieb Olof Johansson:
> 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@armlinux.org.uk>
> Reported-by: Omar Sandoval <osandov@osandov.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Mikael Starvik <starvik@axis.com>
> Cc: Jesper Nilsson <jesper.nilsson@axis.com>
> Cc: James Hogan <james.hogan@imgtec.com>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Frank Rowand <frowand.list@gmail.com>
> Cc: linux-arch <linux-arch@vger.kernel.org>
> Signed-off-by: Olof Johansson <olof@lixom.net>

change itself looks good to me and also works, so

Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Heiko Stuebner <heiko@sntech.de>

But we also have an overlooked glitch in the new rk3399-gru devicetrees
that surfaces with this patch applied.

../arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts:47:57: fatal error: include/dt-bindings/input/linux-event-codes.h: File or directory not found
 #include <include/dt-bindings/input/linux-event-codes.h>

so need the patch from Ian Campbell 
"arm64: dts: rockchip: Drop explicit "include/" prefix from #include" [0]
in front to not cause other build breakage.

So if applicable, both patches should go in together, with the gru patch
in front and I've added my Reviewed-by there if someone else is doing it.


Heiko

[0] https://www.spinics.net/lists/arm-kernel/msg580835.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-13 16:18   ` Heiko Stuebner
  0 siblings, 0 replies; 48+ messages in thread
From: Heiko Stuebner @ 2017-05-13 16:18 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Olof,

Am Freitag, 12. Mai 2017, 20:34:31 CEST schrieb Olof Johansson:
> 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@armlinux.org.uk>
> Reported-by: Omar Sandoval <osandov@osandov.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Mikael Starvik <starvik@axis.com>
> Cc: Jesper Nilsson <jesper.nilsson@axis.com>
> Cc: James Hogan <james.hogan@imgtec.com>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Frank Rowand <frowand.list@gmail.com>
> Cc: linux-arch <linux-arch@vger.kernel.org>
> Signed-off-by: Olof Johansson <olof@lixom.net>

change itself looks good to me and also works, so

Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Heiko Stuebner <heiko@sntech.de>

But we also have an overlooked glitch in the new rk3399-gru devicetrees
that surfaces with this patch applied.

../arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts:47:57: fatal error: include/dt-bindings/input/linux-event-codes.h: File or directory not found
 #include <include/dt-bindings/input/linux-event-codes.h>

so need the patch from Ian Campbell 
"arm64: dts: rockchip: Drop explicit "include/" prefix from #include" [0]
in front to not cause other build breakage.

So if applicable, both patches should go in together, with the gru patch
in front and I've added my Reviewed-by there if someone else is doing it.


Heiko

[0] https://www.spinics.net/lists/arm-kernel/msg580835.html

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-13  3:34 ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-13  3:34 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-arm-kernel, devicetree, Olof Johansson, Heiko Stuebner,
	Rob Herring, Mark Rutland, Russell King, Catalin Marinas,
	Will Deacon, Mikael Starvik, Jesper Nilsson, James Hogan,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Frank Rowand, linux-arch

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@armlinux.org.uk>
Reported-by: Omar Sandoval <osandov@osandov.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: linux-arch <linux-arch@vger.kernel.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
---
 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 +
 26 files changed, 16 insertions(+), 11 deletions(-)
 delete mode 120000 arch/arm/boot/dts/include/arm
 delete mode 120000 arch/arm/boot/dts/include/arm64
 delete mode 120000 arch/arm/boot/dts/include/dt-bindings
 delete mode 120000 arch/arm64/boot/dts/include/arm
 delete mode 120000 arch/arm64/boot/dts/include/arm64
 delete mode 120000 arch/arm64/boot/dts/include/dt-bindings
 delete mode 120000 arch/cris/boot/dts/include/dt-bindings
 delete mode 120000 arch/metag/boot/dts/include/dt-bindings
 delete mode 120000 arch/mips/boot/dts/include/dt-bindings
 delete mode 120000 arch/powerpc/boot/dts/include/dt-bindings
 create mode 120000 scripts/dtc/include-prefixes/arc
 create mode 120000 scripts/dtc/include-prefixes/arm
 create mode 120000 scripts/dtc/include-prefixes/arm64
 create mode 120000 scripts/dtc/include-prefixes/c6x
 create mode 120000 scripts/dtc/include-prefixes/cris
 create mode 120000 scripts/dtc/include-prefixes/dt-bindings
 create mode 120000 scripts/dtc/include-prefixes/h8300
 create mode 120000 scripts/dtc/include-prefixes/metag
 create mode 120000 scripts/dtc/include-prefixes/microblaze
 create mode 120000 scripts/dtc/include-prefixes/mips
 create mode 120000 scripts/dtc/include-prefixes/nios2
 create mode 120000 scripts/dtc/include-prefixes/openrisc
 create mode 120000 scripts/dtc/include-prefixes/powerpc
 create mode 120000 scripts/dtc/include-prefixes/sh
 create mode 120000 scripts/dtc/include-prefixes/xtensa

diff --git a/arch/arm/boot/dts/include/arm b/arch/arm/boot/dts/include/arm
deleted file mode 120000
index a96aa0e..0000000
--- a/arch/arm/boot/dts/include/arm
+++ /dev/null
@@ -1 +0,0 @@
-..
\ No newline at end of file
diff --git a/arch/arm/boot/dts/include/arm64 b/arch/arm/boot/dts/include/arm64
deleted file mode 120000
index 074a835..0000000
--- a/arch/arm/boot/dts/include/arm64
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm64/boot/dts
\ No newline at end of file
diff --git a/arch/arm/boot/dts/include/dt-bindings b/arch/arm/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/arm/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/include/arm b/arch/arm64/boot/dts/include/arm
deleted file mode 120000
index cf63d80..0000000
--- a/arch/arm64/boot/dts/include/arm
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/include/arm64 b/arch/arm64/boot/dts/include/arm64
deleted file mode 120000
index a96aa0e..0000000
--- a/arch/arm64/boot/dts/include/arm64
+++ /dev/null
@@ -1 +0,0 @@
-..
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/include/dt-bindings b/arch/arm64/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/arm64/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/cris/boot/dts/include/dt-bindings b/arch/cris/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/cris/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/metag/boot/dts/include/dt-bindings b/arch/metag/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/metag/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/mips/boot/dts/include/dt-bindings b/arch/mips/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/mips/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/powerpc/boot/dts/include/dt-bindings b/arch/powerpc/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/powerpc/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index c9f975a..2c759b0 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -175,7 +175,7 @@ ld_flags       = $(LDFLAGS) $(ldflags-y)
 
 dtc_cpp_flags  = -Wp,-MD,$(depfile).pre.tmp -nostdinc                    \
 		 -I$(srctree)/arch/$(SRCARCH)/boot/dts                   \
-		 -I$(srctree)/arch/$(SRCARCH)/boot/dts/include           \
+		 -I$(srctree)/scripts/dtc/include-prefixes               \
 		 -I$(srctree)/drivers/of/testcase-data                   \
 		 -undef -D__DTS__
 
diff --git a/scripts/dtc/include-prefixes/arc b/scripts/dtc/include-prefixes/arc
new file mode 120000
index 0000000..5d21b5a
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arc
@@ -0,0 +1 @@
+../../../arch/arc/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/arm b/scripts/dtc/include-prefixes/arm
new file mode 120000
index 0000000..eb14d45
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arm
@@ -0,0 +1 @@
+../../../arch/arm/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/arm64 b/scripts/dtc/include-prefixes/arm64
new file mode 120000
index 0000000..275c42c
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arm64
@@ -0,0 +1 @@
+../../../arch/arm64/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/c6x b/scripts/dtc/include-prefixes/c6x
new file mode 120000
index 0000000..49ded4c
--- /dev/null
+++ b/scripts/dtc/include-prefixes/c6x
@@ -0,0 +1 @@
+../../../arch/c6x/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/cris b/scripts/dtc/include-prefixes/cris
new file mode 120000
index 0000000..736d998
--- /dev/null
+++ b/scripts/dtc/include-prefixes/cris
@@ -0,0 +1 @@
+../../../arch/cris/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/dt-bindings b/scripts/dtc/include-prefixes/dt-bindings
new file mode 120000
index 0000000..04fdbb3
--- /dev/null
+++ b/scripts/dtc/include-prefixes/dt-bindings
@@ -0,0 +1 @@
+../../../include/dt-bindings
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/h8300 b/scripts/dtc/include-prefixes/h8300
new file mode 120000
index 0000000..3bdaa33
--- /dev/null
+++ b/scripts/dtc/include-prefixes/h8300
@@ -0,0 +1 @@
+../../../arch/h8300/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/metag b/scripts/dtc/include-prefixes/metag
new file mode 120000
index 0000000..87a3c84
--- /dev/null
+++ b/scripts/dtc/include-prefixes/metag
@@ -0,0 +1 @@
+../../../arch/metag/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/microblaze b/scripts/dtc/include-prefixes/microblaze
new file mode 120000
index 0000000..d983033
--- /dev/null
+++ b/scripts/dtc/include-prefixes/microblaze
@@ -0,0 +1 @@
+../../../arch/microblaze/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/mips b/scripts/dtc/include-prefixes/mips
new file mode 120000
index 0000000..ae8d494
--- /dev/null
+++ b/scripts/dtc/include-prefixes/mips
@@ -0,0 +1 @@
+../../../arch/mips/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/nios2 b/scripts/dtc/include-prefixes/nios2
new file mode 120000
index 0000000..5177233
--- /dev/null
+++ b/scripts/dtc/include-prefixes/nios2
@@ -0,0 +1 @@
+../../../arch/nios2/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/openrisc b/scripts/dtc/include-prefixes/openrisc
new file mode 120000
index 0000000..71c3bc7
--- /dev/null
+++ b/scripts/dtc/include-prefixes/openrisc
@@ -0,0 +1 @@
+../../../arch/openrisc/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/powerpc b/scripts/dtc/include-prefixes/powerpc
new file mode 120000
index 0000000..7cd6ec1
--- /dev/null
+++ b/scripts/dtc/include-prefixes/powerpc
@@ -0,0 +1 @@
+../../../arch/powerpc/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/sh b/scripts/dtc/include-prefixes/sh
new file mode 120000
index 0000000..67d3780
--- /dev/null
+++ b/scripts/dtc/include-prefixes/sh
@@ -0,0 +1 @@
+../../../arch/sh/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/xtensa b/scripts/dtc/include-prefixes/xtensa
new file mode 120000
index 0000000..d1eaf6e
--- /dev/null
+++ b/scripts/dtc/include-prefixes/xtensa
@@ -0,0 +1 @@
+../../../arch/xtensa/boot/dts
\ No newline at end of file
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH] devicetree: Move include prefixes from arch to separate directory
@ 2017-05-13  3:34 ` Olof Johansson
  0 siblings, 0 replies; 48+ messages in thread
From: Olof Johansson @ 2017-05-13  3:34 UTC (permalink / raw)
  To: linux-arm-kernel

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@armlinux.org.uk>
Reported-by: Omar Sandoval <osandov@osandov.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: linux-arch <linux-arch@vger.kernel.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
---
 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 +
 26 files changed, 16 insertions(+), 11 deletions(-)
 delete mode 120000 arch/arm/boot/dts/include/arm
 delete mode 120000 arch/arm/boot/dts/include/arm64
 delete mode 120000 arch/arm/boot/dts/include/dt-bindings
 delete mode 120000 arch/arm64/boot/dts/include/arm
 delete mode 120000 arch/arm64/boot/dts/include/arm64
 delete mode 120000 arch/arm64/boot/dts/include/dt-bindings
 delete mode 120000 arch/cris/boot/dts/include/dt-bindings
 delete mode 120000 arch/metag/boot/dts/include/dt-bindings
 delete mode 120000 arch/mips/boot/dts/include/dt-bindings
 delete mode 120000 arch/powerpc/boot/dts/include/dt-bindings
 create mode 120000 scripts/dtc/include-prefixes/arc
 create mode 120000 scripts/dtc/include-prefixes/arm
 create mode 120000 scripts/dtc/include-prefixes/arm64
 create mode 120000 scripts/dtc/include-prefixes/c6x
 create mode 120000 scripts/dtc/include-prefixes/cris
 create mode 120000 scripts/dtc/include-prefixes/dt-bindings
 create mode 120000 scripts/dtc/include-prefixes/h8300
 create mode 120000 scripts/dtc/include-prefixes/metag
 create mode 120000 scripts/dtc/include-prefixes/microblaze
 create mode 120000 scripts/dtc/include-prefixes/mips
 create mode 120000 scripts/dtc/include-prefixes/nios2
 create mode 120000 scripts/dtc/include-prefixes/openrisc
 create mode 120000 scripts/dtc/include-prefixes/powerpc
 create mode 120000 scripts/dtc/include-prefixes/sh
 create mode 120000 scripts/dtc/include-prefixes/xtensa

diff --git a/arch/arm/boot/dts/include/arm b/arch/arm/boot/dts/include/arm
deleted file mode 120000
index a96aa0e..0000000
--- a/arch/arm/boot/dts/include/arm
+++ /dev/null
@@ -1 +0,0 @@
-..
\ No newline at end of file
diff --git a/arch/arm/boot/dts/include/arm64 b/arch/arm/boot/dts/include/arm64
deleted file mode 120000
index 074a835..0000000
--- a/arch/arm/boot/dts/include/arm64
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm64/boot/dts
\ No newline at end of file
diff --git a/arch/arm/boot/dts/include/dt-bindings b/arch/arm/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/arm/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/include/arm b/arch/arm64/boot/dts/include/arm
deleted file mode 120000
index cf63d80..0000000
--- a/arch/arm64/boot/dts/include/arm
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/include/arm64 b/arch/arm64/boot/dts/include/arm64
deleted file mode 120000
index a96aa0e..0000000
--- a/arch/arm64/boot/dts/include/arm64
+++ /dev/null
@@ -1 +0,0 @@
-..
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/include/dt-bindings b/arch/arm64/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/arm64/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/cris/boot/dts/include/dt-bindings b/arch/cris/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/cris/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/metag/boot/dts/include/dt-bindings b/arch/metag/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/metag/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/mips/boot/dts/include/dt-bindings b/arch/mips/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/mips/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/arch/powerpc/boot/dts/include/dt-bindings b/arch/powerpc/boot/dts/include/dt-bindings
deleted file mode 120000
index 08c00e4..0000000
--- a/arch/powerpc/boot/dts/include/dt-bindings
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index c9f975a..2c759b0 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -175,7 +175,7 @@ ld_flags       = $(LDFLAGS) $(ldflags-y)
 
 dtc_cpp_flags  = -Wp,-MD,$(depfile).pre.tmp -nostdinc                    \
 		 -I$(srctree)/arch/$(SRCARCH)/boot/dts                   \
-		 -I$(srctree)/arch/$(SRCARCH)/boot/dts/include           \
+		 -I$(srctree)/scripts/dtc/include-prefixes               \
 		 -I$(srctree)/drivers/of/testcase-data                   \
 		 -undef -D__DTS__
 
diff --git a/scripts/dtc/include-prefixes/arc b/scripts/dtc/include-prefixes/arc
new file mode 120000
index 0000000..5d21b5a
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arc
@@ -0,0 +1 @@
+../../../arch/arc/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/arm b/scripts/dtc/include-prefixes/arm
new file mode 120000
index 0000000..eb14d45
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arm
@@ -0,0 +1 @@
+../../../arch/arm/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/arm64 b/scripts/dtc/include-prefixes/arm64
new file mode 120000
index 0000000..275c42c
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arm64
@@ -0,0 +1 @@
+../../../arch/arm64/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/c6x b/scripts/dtc/include-prefixes/c6x
new file mode 120000
index 0000000..49ded4c
--- /dev/null
+++ b/scripts/dtc/include-prefixes/c6x
@@ -0,0 +1 @@
+../../../arch/c6x/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/cris b/scripts/dtc/include-prefixes/cris
new file mode 120000
index 0000000..736d998
--- /dev/null
+++ b/scripts/dtc/include-prefixes/cris
@@ -0,0 +1 @@
+../../../arch/cris/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/dt-bindings b/scripts/dtc/include-prefixes/dt-bindings
new file mode 120000
index 0000000..04fdbb3
--- /dev/null
+++ b/scripts/dtc/include-prefixes/dt-bindings
@@ -0,0 +1 @@
+../../../include/dt-bindings
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/h8300 b/scripts/dtc/include-prefixes/h8300
new file mode 120000
index 0000000..3bdaa33
--- /dev/null
+++ b/scripts/dtc/include-prefixes/h8300
@@ -0,0 +1 @@
+../../../arch/h8300/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/metag b/scripts/dtc/include-prefixes/metag
new file mode 120000
index 0000000..87a3c84
--- /dev/null
+++ b/scripts/dtc/include-prefixes/metag
@@ -0,0 +1 @@
+../../../arch/metag/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/microblaze b/scripts/dtc/include-prefixes/microblaze
new file mode 120000
index 0000000..d983033
--- /dev/null
+++ b/scripts/dtc/include-prefixes/microblaze
@@ -0,0 +1 @@
+../../../arch/microblaze/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/mips b/scripts/dtc/include-prefixes/mips
new file mode 120000
index 0000000..ae8d494
--- /dev/null
+++ b/scripts/dtc/include-prefixes/mips
@@ -0,0 +1 @@
+../../../arch/mips/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/nios2 b/scripts/dtc/include-prefixes/nios2
new file mode 120000
index 0000000..5177233
--- /dev/null
+++ b/scripts/dtc/include-prefixes/nios2
@@ -0,0 +1 @@
+../../../arch/nios2/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/openrisc b/scripts/dtc/include-prefixes/openrisc
new file mode 120000
index 0000000..71c3bc7
--- /dev/null
+++ b/scripts/dtc/include-prefixes/openrisc
@@ -0,0 +1 @@
+../../../arch/openrisc/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/powerpc b/scripts/dtc/include-prefixes/powerpc
new file mode 120000
index 0000000..7cd6ec1
--- /dev/null
+++ b/scripts/dtc/include-prefixes/powerpc
@@ -0,0 +1 @@
+../../../arch/powerpc/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/sh b/scripts/dtc/include-prefixes/sh
new file mode 120000
index 0000000..67d3780
--- /dev/null
+++ b/scripts/dtc/include-prefixes/sh
@@ -0,0 +1 @@
+../../../arch/sh/boot/dts
\ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/xtensa b/scripts/dtc/include-prefixes/xtensa
new file mode 120000
index 0000000..d1eaf6e
--- /dev/null
+++ b/scripts/dtc/include-prefixes/xtensa
@@ -0,0 +1 @@
+../../../arch/xtensa/boot/dts
\ No newline at end of file
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2017-05-17 14:22 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-15 13:01 [PATCH] devicetree: Move include prefixes from arch to separate directory Rob Herring
2017-05-15 13:01 ` Rob Herring
2017-05-15 14:26 ` Russell King - ARM Linux
2017-05-15 14:26   ` Russell King - ARM Linux
2017-05-15 14:26   ` Russell King - ARM Linux
2017-05-15 14:47   ` Rob Herring
2017-05-15 14:47     ` Rob Herring
2017-05-15 14:47     ` Rob Herring
2017-05-15 14:47     ` Rob Herring
2017-05-15 15:27     ` Russell King - ARM Linux
2017-05-15 15:27       ` Russell King - ARM Linux
2017-05-15 15:27       ` Russell King - ARM Linux
2017-05-15 15:27       ` Russell King - ARM Linux
2017-05-15 15:27     ` Olof Johansson
2017-05-15 15:27       ` Olof Johansson
2017-05-15 15:27       ` Olof Johansson
2017-05-15 15:27       ` Olof Johansson
2017-05-15 15:48       ` Russell King - ARM Linux
2017-05-15 15:48         ` Russell King - ARM Linux
2017-05-15 15:48         ` Russell King - ARM Linux
2017-05-15 17:04         ` Olof Johansson
2017-05-15 17:04           ` Olof Johansson
2017-05-15 17:04           ` Olof Johansson
2017-05-15 17:04           ` Olof Johansson
2017-05-17 13:54           ` Masahiro Yamada
2017-05-17 13:54             ` Masahiro Yamada
2017-05-17 13:54             ` Masahiro Yamada
2017-05-17 13:54             ` Masahiro Yamada
2017-05-15 15:52       ` Rob Herring
2017-05-15 15:52         ` Rob Herring
2017-05-15 15:52         ` Rob Herring
2017-05-15 16:09         ` Olof Johansson
2017-05-15 16:09           ` Olof Johansson
2017-05-15 16:09           ` Olof Johansson
2017-05-15 16:40           ` Rob Herring
2017-05-15 16:40             ` Rob Herring
2017-05-15 16:40             ` Rob Herring
2017-05-15 16:40             ` Rob Herring
2017-05-17 14:22           ` Geert Uytterhoeven
2017-05-17 14:22             ` Geert Uytterhoeven
2017-05-17 14:22             ` Geert Uytterhoeven
2017-05-17 14:22             ` Geert Uytterhoeven
  -- strict thread matches above, loose matches on Subject: below --
2017-05-13  3:34 Olof Johansson
2017-05-13  3:34 ` Olof Johansson
2017-05-13 16:18 ` Heiko Stuebner
2017-05-13 16:18   ` Heiko Stuebner
2017-05-13 16:18   ` Heiko Stuebner
2017-05-15 12:53 ` Rob Herring

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.