Эх сурвалжийг харах

kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib

If CONFIG_OF_ALL_DTBS is enabled, "make ARCH=arm64 dtbs" compiles each
DTB twice; one from arch/arm64/boot/dts/*/Makefile and the other from
the dtb-$(CONFIG_OF_ALL_DTBS) line in arch/arm64/boot/dts/Makefile.
It could be a race problem when building DTBS in parallel.

Another minor issue is CONFIG_OF_ALL_DTBS covers only *.dts in vendor
sub-directories, so this broke when Broadcom added one more hierarchy
in arch/arm64/boot/dts/broadcom/<soc>/.

One idea to fix the issues in a clean way is to move DTB handling
to Kbuild core scripts.  Makefile.dtbinst already recognizes dtb-y
natively, so it should not hurt to do so.

Add $(dtb-y) to extra-y, and $(dtb-) as well if CONFIG_OF_ALL_DTBS is
enabled.  All clutter things in Makefiles go away.

As a bonus clean-up, I also removed dts-dirs.  Just use subdir-y
directly to traverse sub-directories.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
[robh: corrected BUILTIN_DTB to CONFIG_BUILTIN_DTB]
Signed-off-by: Rob Herring <robh@kernel.org>
Masahiro Yamada 7 жил өмнө
parent
commit
7e7962dd1a
48 өөрчлөгдсөн 53 нэмэгдсэн , 182 устгасан
  1. 3 4
      arch/arc/boot/dts/Makefile
  2. 0 5
      arch/arm/boot/dts/Makefile
  3. 25 33
      arch/arm64/boot/dts/Makefile
  4. 0 3
      arch/arm64/boot/dts/actions/Makefile
  5. 0 3
      arch/arm64/boot/dts/al/Makefile
  6. 0 3
      arch/arm64/boot/dts/allwinner/Makefile
  7. 0 3
      arch/arm64/boot/dts/altera/Makefile
  8. 0 3
      arch/arm64/boot/dts/amd/Makefile
  9. 0 3
      arch/arm64/boot/dts/amlogic/Makefile
  10. 0 3
      arch/arm64/boot/dts/apm/Makefile
  11. 0 3
      arch/arm64/boot/dts/arm/Makefile
  12. 2 4
      arch/arm64/boot/dts/broadcom/Makefile
  13. 0 3
      arch/arm64/boot/dts/broadcom/northstar2/Makefile
  14. 0 3
      arch/arm64/boot/dts/broadcom/stingray/Makefile
  15. 0 3
      arch/arm64/boot/dts/cavium/Makefile
  16. 0 3
      arch/arm64/boot/dts/exynos/Makefile
  17. 0 3
      arch/arm64/boot/dts/freescale/Makefile
  18. 0 3
      arch/arm64/boot/dts/hisilicon/Makefile
  19. 0 3
      arch/arm64/boot/dts/lg/Makefile
  20. 0 3
      arch/arm64/boot/dts/marvell/Makefile
  21. 0 3
      arch/arm64/boot/dts/mediatek/Makefile
  22. 0 2
      arch/arm64/boot/dts/nvidia/Makefile
  23. 0 3
      arch/arm64/boot/dts/qcom/Makefile
  24. 0 3
      arch/arm64/boot/dts/realtek/Makefile
  25. 0 2
      arch/arm64/boot/dts/renesas/Makefile
  26. 0 3
      arch/arm64/boot/dts/rockchip/Makefile
  27. 0 2
      arch/arm64/boot/dts/socionext/Makefile
  28. 0 3
      arch/arm64/boot/dts/sprd/Makefile
  29. 0 3
      arch/arm64/boot/dts/xilinx/Makefile
  30. 0 3
      arch/arm64/boot/dts/zte/Makefile
  31. 0 5
      arch/h8300/boot/dts/Makefile
  32. 0 5
      arch/metag/boot/dts/Makefile
  33. 13 19
      arch/mips/boot/dts/Makefile
  34. 0 2
      arch/mips/boot/dts/brcm/Makefile
  35. 0 2
      arch/mips/boot/dts/cavium-octeon/Makefile
  36. 0 2
      arch/mips/boot/dts/img/Makefile
  37. 0 2
      arch/mips/boot/dts/ingenic/Makefile
  38. 0 2
      arch/mips/boot/dts/lantiq/Makefile
  39. 0 2
      arch/mips/boot/dts/mti/Makefile
  40. 0 2
      arch/mips/boot/dts/netlogic/Makefile
  41. 0 2
      arch/mips/boot/dts/ni/Makefile
  42. 0 2
      arch/mips/boot/dts/pic32/Makefile
  43. 0 2
      arch/mips/boot/dts/qca/Makefile
  44. 0 2
      arch/mips/boot/dts/ralink/Makefile
  45. 0 2
      arch/mips/boot/dts/xilfpga/Makefile
  46. 3 4
      arch/xtensa/boot/dts/Makefile
  47. 2 4
      scripts/Makefile.dtbinst
  48. 5 0
      scripts/Makefile.lib

+ 3 - 4
arch/arc/boot/dts/Makefile

@@ -10,7 +10,6 @@ dtb-y := $(builtindtb-y).dtb
 
 
 .SECONDARY: $(obj)/$(builtindtb-y).dtb.S
 .SECONDARY: $(obj)/$(builtindtb-y).dtb.S
 
 
-dtstree		:= $(srctree)/$(src)
-dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
-
-always := $(dtb-y)
+# for CONFIG_OF_ALL_DTBS test
+dtstree	:= $(srctree)/$(src)
+dtb-	:= $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))

+ 0 - 5
arch/arm/boot/dts/Makefile

@@ -1069,8 +1069,3 @@ dtb-$(CONFIG_ARCH_ASPEED) += aspeed-bmc-opp-palmetto.dtb \
 	aspeed-bmc-opp-romulus.dtb \
 	aspeed-bmc-opp-romulus.dtb \
 	aspeed-ast2500-evb.dtb
 	aspeed-ast2500-evb.dtb
 endif
 endif
-
-dtstree		:= $(srctree)/$(src)
-dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
-
-always		:= $(dtb-y)

+ 25 - 33
arch/arm64/boot/dts/Makefile

@@ -1,33 +1,25 @@
-dts-dirs += actions
-dts-dirs += al
-dts-dirs += allwinner
-dts-dirs += altera
-dts-dirs += amd
-dts-dirs += amlogic
-dts-dirs += apm
-dts-dirs += arm
-dts-dirs += broadcom
-dts-dirs += cavium
-dts-dirs += exynos
-dts-dirs += freescale
-dts-dirs += hisilicon
-dts-dirs += marvell
-dts-dirs += mediatek
-dts-dirs += nvidia
-dts-dirs += qcom
-dts-dirs += realtek
-dts-dirs += renesas
-dts-dirs += rockchip
-dts-dirs += socionext
-dts-dirs += sprd
-dts-dirs += xilinx
-dts-dirs += lg
-dts-dirs += zte
-
-subdir-y	:= $(dts-dirs)
-
-dtstree		:= $(srctree)/$(src)
-
-dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(foreach d,$(dts-dirs), $(wildcard $(dtstree)/$(d)/*.dts)))
-
-always		:= $(dtb-y)
+subdir-y += actions
+subdir-y += al
+subdir-y += allwinner
+subdir-y += altera
+subdir-y += amd
+subdir-y += amlogic
+subdir-y += apm
+subdir-y += arm
+subdir-y += broadcom
+subdir-y += cavium
+subdir-y += exynos
+subdir-y += freescale
+subdir-y += hisilicon
+subdir-y += marvell
+subdir-y += mediatek
+subdir-y += nvidia
+subdir-y += qcom
+subdir-y += realtek
+subdir-y += renesas
+subdir-y += rockchip
+subdir-y += socionext
+subdir-y += sprd
+subdir-y += xilinx
+subdir-y += lg
+subdir-y += zte

+ 0 - 3
arch/arm64/boot/dts/actions/Makefile

@@ -1,4 +1 @@
 dtb-$(CONFIG_ARCH_ACTIONS) += s900-bubblegum-96.dtb
 dtb-$(CONFIG_ARCH_ACTIONS) += s900-bubblegum-96.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/al/Makefile

@@ -1,4 +1 @@
 dtb-$(CONFIG_ARCH_ALPINE)	+= alpine-v2-evp.dtb
 dtb-$(CONFIG_ARCH_ALPINE)	+= alpine-v2-evp.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/allwinner/Makefile

@@ -8,6 +8,3 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/altera/Makefile

@@ -1,4 +1 @@
 dtb-$(CONFIG_ARCH_STRATIX10) += socfpga_stratix10_socdk.dtb
 dtb-$(CONFIG_ARCH_STRATIX10) += socfpga_stratix10_socdk.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/amd/Makefile

@@ -1,6 +1,3 @@
 dtb-$(CONFIG_ARCH_SEATTLE) += amd-overdrive.dtb \
 dtb-$(CONFIG_ARCH_SEATTLE) += amd-overdrive.dtb \
 			amd-overdrive-rev-b0.dtb amd-overdrive-rev-b1.dtb \
 			amd-overdrive-rev-b0.dtb amd-overdrive-rev-b1.dtb \
 			husky.dtb
 			husky.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/amlogic/Makefile

@@ -19,6 +19,3 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/apm/Makefile

@@ -1,5 +1,2 @@
 dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
 dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
 dtb-$(CONFIG_ARCH_XGENE) += apm-merlin.dtb
 dtb-$(CONFIG_ARCH_XGENE) += apm-merlin.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/arm/Makefile

@@ -2,6 +2,3 @@ dtb-$(CONFIG_ARCH_VEXPRESS) += foundation-v8.dtb foundation-v8-gicv3.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 2 - 4
arch/arm64/boot/dts/broadcom/Makefile

@@ -1,6 +1,4 @@
 dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb
 dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb
 
 
-dts-dirs	+= northstar2
-dts-dirs	+= stingray
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)
+subdir-y	+= northstar2
+subdir-y	+= stingray

+ 0 - 3
arch/arm64/boot/dts/broadcom/northstar2/Makefile

@@ -1,5 +1,2 @@
 dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb
 dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb
 dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-xmc.dtb
 dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-xmc.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/broadcom/stingray/Makefile

@@ -1,5 +1,2 @@
 dtb-$(CONFIG_ARCH_BCM_IPROC) += bcm958742k.dtb
 dtb-$(CONFIG_ARCH_BCM_IPROC) += bcm958742k.dtb
 dtb-$(CONFIG_ARCH_BCM_IPROC) += bcm958742t.dtb
 dtb-$(CONFIG_ARCH_BCM_IPROC) += bcm958742t.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/cavium/Makefile

@@ -1,5 +1,2 @@
 dtb-$(CONFIG_ARCH_THUNDER) += thunder-88xx.dtb
 dtb-$(CONFIG_ARCH_THUNDER) += thunder-88xx.dtb
 dtb-$(CONFIG_ARCH_THUNDER2) += thunder2-99xx.dtb
 dtb-$(CONFIG_ARCH_THUNDER2) += thunder2-99xx.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/exynos/Makefile

@@ -2,6 +2,3 @@ dtb-$(CONFIG_ARCH_EXYNOS) += \
 	exynos5433-tm2.dtb	\
 	exynos5433-tm2.dtb	\
 	exynos5433-tm2e.dtb	\
 	exynos5433-tm2e.dtb	\
 	exynos7-espresso.dtb
 	exynos7-espresso.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/freescale/Makefile

@@ -12,6 +12,3 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb
- 
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/hisilicon/Makefile

@@ -4,6 +4,3 @@ dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb
 dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb
 dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb
 dtb-$(CONFIG_ARCH_HISI) += hip06-d03.dtb
 dtb-$(CONFIG_ARCH_HISI) += hip06-d03.dtb
 dtb-$(CONFIG_ARCH_HISI) += hip07-d05.dtb
 dtb-$(CONFIG_ARCH_HISI) += hip07-d05.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/lg/Makefile

@@ -1,5 +1,2 @@
 dtb-$(CONFIG_ARCH_LG1K) += lg1312-ref.dtb
 dtb-$(CONFIG_ARCH_LG1K) += lg1312-ref.dtb
 dtb-$(CONFIG_ARCH_LG1K) += lg1313-ref.dtb
 dtb-$(CONFIG_ARCH_LG1K) += lg1313-ref.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/marvell/Makefile

@@ -9,6 +9,3 @@ dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-mcbin.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-mcbin.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-8080-db.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-8080-db.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/mediatek/Makefile

@@ -4,6 +4,3 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6795-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 2
arch/arm64/boot/dts/nvidia/Makefile

@@ -4,5 +4,3 @@ dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-2180.dtb
 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2571.dtb
 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2571.dtb
 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-smaug.dtb
 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-smaug.dtb
 dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p2771-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p2771-0000.dtb
-
-always		:= $(dtb-y)

+ 0 - 3
arch/arm64/boot/dts/qcom/Makefile

@@ -5,6 +5,3 @@ dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8992-bullhead-rev-101.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8992-bullhead-rev-101.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8994-angler-rev-101.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8994-angler-rev-101.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8996-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8996-mtp.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/realtek/Makefile

@@ -1,4 +1 @@
 dtb-$(CONFIG_ARCH_REALTEK) += rtd1295-zidoo-x9s.dtb
 dtb-$(CONFIG_ARCH_REALTEK) += rtd1295-zidoo-x9s.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 2
arch/arm64/boot/dts/renesas/Makefile

@@ -3,5 +3,3 @@ dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-xs.dtb
 dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb r8a7795-es1-h3ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb r8a7795-es1-h3ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb
 dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb
-
-always		:= $(dtb-y)

+ 0 - 3
arch/arm64/boot/dts/rockchip/Makefile

@@ -10,6 +10,3 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 2
arch/arm64/boot/dts/socionext/Makefile

@@ -4,5 +4,3 @@ dtb-$(CONFIG_ARCH_UNIPHIER) += \
 	uniphier-ld20-global.dtb \
 	uniphier-ld20-global.dtb \
 	uniphier-ld20-ref.dtb \
 	uniphier-ld20-ref.dtb \
 	uniphier-pxs3-ref.dtb
 	uniphier-pxs3-ref.dtb
-
-always		:= $(dtb-y)

+ 0 - 3
arch/arm64/boot/dts/sprd/Makefile

@@ -1,5 +1,2 @@
 dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb \
 dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb \
 			sp9860g-1h10.dtb
 			sp9860g-1h10.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/xilinx/Makefile

@@ -1,4 +1 @@
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-ep108.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-ep108.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 3
arch/arm64/boot/dts/zte/Makefile

@@ -1,5 +1,2 @@
 dtb-$(CONFIG_ARCH_ZX) += zx296718-evb.dtb
 dtb-$(CONFIG_ARCH_ZX) += zx296718-evb.dtb
 dtb-$(CONFIG_ARCH_ZX) += zx296718-pcbox.dtb
 dtb-$(CONFIG_ARCH_ZX) += zx296718-pcbox.dtb
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)

+ 0 - 5
arch/h8300/boot/dts/Makefile

@@ -7,8 +7,3 @@ obj-y += $(BUILTIN_DTB)
 dtb-$(CONFIG_H8300H_SIM) := h8300h_sim.dtb
 dtb-$(CONFIG_H8300H_SIM) := h8300h_sim.dtb
 dtb-$(CONFIG_H8S_SIM) := h8s_sim.dtb
 dtb-$(CONFIG_H8S_SIM) := h8s_sim.dtb
 dtb-$(CONFIG_H8S_EDOSK2674) := edosk2674.dtb
 dtb-$(CONFIG_H8S_EDOSK2674) := edosk2674.dtb
-
-dtstree		:= $(srctree)/$(src)
-dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
-
-always	    := $(dtb-y)

+ 0 - 5
arch/metag/boot/dts/Makefile

@@ -12,9 +12,4 @@ endif
 dtb-$(CONFIG_METAG_BUILTIN_DTB)	+= $(builtindtb-y).dtb
 dtb-$(CONFIG_METAG_BUILTIN_DTB)	+= $(builtindtb-y).dtb
 obj-$(CONFIG_METAG_BUILTIN_DTB)	+= $(builtindtb-y).dtb.o
 obj-$(CONFIG_METAG_BUILTIN_DTB)	+= $(builtindtb-y).dtb.o
 
 
-dtstree		:= $(srctree)/$(src)
-dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
-
 .SECONDARY: $(obj)/$(builtindtb-y).dtb.S
 .SECONDARY: $(obj)/$(builtindtb-y).dtb.S
-
-always += $(dtb-y)

+ 13 - 19
arch/mips/boot/dts/Makefile

@@ -1,20 +1,14 @@
-dts-dirs	+= brcm
-dts-dirs	+= cavium-octeon
-dts-dirs	+= img
-dts-dirs	+= ingenic
-dts-dirs	+= lantiq
-dts-dirs	+= mti
-dts-dirs	+= netlogic
-dts-dirs	+= ni
-dts-dirs	+= pic32
-dts-dirs	+= qca
-dts-dirs	+= ralink
-dts-dirs	+= xilfpga
+subdir-y	+= brcm
+subdir-y	+= cavium-octeon
+subdir-y	+= img
+subdir-y	+= ingenic
+subdir-y	+= lantiq
+subdir-y	+= mti
+subdir-y	+= netlogic
+subdir-y	+= ni
+subdir-y	+= pic32
+subdir-y	+= qca
+subdir-y	+= ralink
+subdir-y	+= xilfpga
 
 
-obj-y		:= $(addsuffix /, $(dts-dirs))
-
-dtstree		:= $(srctree)/$(src)
-dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(foreach d,$(dts-dirs), $(wildcard $(dtstree)/$(d)/*.dts)))
-
-always		:= $(dtb-y)
-subdir-y	:= $(dts-dirs)
+obj-$(CONFIG_BUILTIN_DTB)	:= $(addsuffix /, $(subdir-y))

+ 0 - 2
arch/mips/boot/dts/brcm/Makefile

@@ -37,5 +37,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/cavium-octeon/Makefile

@@ -4,5 +4,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/img/Makefile

@@ -5,5 +5,3 @@ obj-$(CONFIG_MACH_PISTACHIO)	+= pistachio_marduk.dtb.o
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/ingenic/Makefile

@@ -5,5 +5,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/lantiq/Makefile

@@ -4,5 +4,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/mti/Makefile

@@ -5,5 +5,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/netlogic/Makefile

@@ -8,5 +8,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/ni/Makefile

@@ -2,5 +2,3 @@ dtb-$(CONFIG_FIT_IMAGE_FDT_NI169445)	+= 169445.dtb
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-					+= dummy.o
 obj-					+= dummy.o
-
-always					:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/pic32/Makefile

@@ -7,5 +7,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/qca/Makefile

@@ -7,5 +7,3 @@ dtb-$(CONFIG_ATH79)			+= ar9331_tl_mr3020.dtb
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/ralink/Makefile

@@ -9,5 +9,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 0 - 2
arch/mips/boot/dts/xilfpga/Makefile

@@ -4,5 +4,3 @@ obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 
 
 # Force kbuild to make empty built-in.o if necessary
 # Force kbuild to make empty built-in.o if necessary
 obj-				+= dummy.o
 obj-				+= dummy.o
-
-always				:= $(dtb-y)

+ 3 - 4
arch/xtensa/boot/dts/Makefile

@@ -12,7 +12,6 @@ ifneq ($(CONFIG_BUILTIN_DTB),"")
 obj-$(CONFIG_OF) += $(BUILTIN_DTB)
 obj-$(CONFIG_OF) += $(BUILTIN_DTB)
 endif
 endif
 
 
-dtstree := $(srctree)/$(src)
-dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
-
-always += $(dtb-y)
+# for CONFIG_OF_ALL_DTBS test
+dtstree	:= $(srctree)/$(src)
+dtb-	:= $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))

+ 2 - 4
scripts/Makefile.dtbinst

@@ -5,8 +5,6 @@
 # INSTALL_DTBS_PATH directory or the default location:
 # INSTALL_DTBS_PATH directory or the default location:
 #
 #
 #   $INSTALL_PATH/dtbs/$KERNELRELEASE
 #   $INSTALL_PATH/dtbs/$KERNELRELEASE
-#
-# Traverse through subdirectories listed in $(dts-dirs).
 # ==========================================================================
 # ==========================================================================
 
 
 src := $(obj)
 src := $(obj)
@@ -20,8 +18,8 @@ include include/config/auto.conf
 include scripts/Kbuild.include
 include scripts/Kbuild.include
 include $(src)/Makefile
 include $(src)/Makefile
 
 
-dtbinst-files	:= $(dtb-y)
-dtbinst-dirs	:= $(dts-dirs)
+dtbinst-files	:= $(sort $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS), $(dtb-)))
+dtbinst-dirs	:= $(subdir-y) $(subdir-m)
 
 
 # Helper targets for Installing DTBs into the boot directory
 # Helper targets for Installing DTBs into the boot directory
 quiet_cmd_dtb_install =	INSTALL $<
 quiet_cmd_dtb_install =	INSTALL $<

+ 5 - 0
scripts/Makefile.lib

@@ -69,6 +69,11 @@ obj-dirs := $(dir $(multi-objs) $(obj-y))
 real-objs-y := $(foreach m, $(filter-out $(subdir-obj-y), $(obj-y)), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m))) $(extra-y)
 real-objs-y := $(foreach m, $(filter-out $(subdir-obj-y), $(obj-y)), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m))) $(extra-y)
 real-objs-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))),$($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)),$(m)))
 real-objs-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))),$($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)),$(m)))
 
 
+# DTB
+# If CONFIG_OF_ALL_DTBS is enabled, all DT blobs are built
+extra-y				+= $(dtb-y)
+extra-$(CONFIG_OF_ALL_DTBS)	+= $(dtb-)
+
 # Add subdir path
 # Add subdir path
 
 
 extra-y		:= $(addprefix $(obj)/,$(extra-y))
 extra-y		:= $(addprefix $(obj)/,$(extra-y))