1 From 3cd31a44e61e2219d730d6b1a4a13c8e15d6e395 Mon Sep 17 00:00:00 2001
2 From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
3 Date: Thu, 2 Apr 2020 19:54:33 +0200
4 Subject: [PATCH] ARM: dts: overlays: Unify overlay CMA handling
6 Now that we don't have to abuse the kernel command line to change CMA's
7 size we can clean-up and centralize CMA usage in overlays.
9 A new file, cma-overlay.dts is created to be used as a standalone
10 overlay or included on other overlays. All CMA users are converted to
11 this scheme. Ultimately upstream-overlay.dts is also updated to use the
12 default CMA size provided by upstream.
14 Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
16 arch/arm/boot/dts/overlays/Makefile | 1 +
17 arch/arm/boot/dts/overlays/README | 19 +++++
18 arch/arm/boot/dts/overlays/cma-overlay.dts | 32 ++++++++
19 .../boot/dts/overlays/upstream-overlay.dts | 56 ++++---------
20 .../dts/overlays/upstream-pi4-overlay.dts | 66 +++++----------
21 .../dts/overlays/vc4-fkms-v3d-overlay.dts | 51 ++----------
22 .../boot/dts/overlays/vc4-kms-v3d-overlay.dts | 66 ++++-----------
23 .../dts/overlays/vc4-kms-v3d-pi4-overlay.dts | 80 +++++--------------
24 8 files changed, 129 insertions(+), 242 deletions(-)
25 create mode 100644 arch/arm/boot/dts/overlays/cma-overlay.dts
27 --- a/arch/arm/boot/dts/overlays/Makefile
28 +++ b/arch/arm/boot/dts/overlays/Makefile
29 @@ -28,6 +28,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
36 dionaudio-loco-v2.dtbo \
37 --- a/arch/arm/boot/dts/overlays/README
38 +++ b/arch/arm/boot/dts/overlays/README
39 @@ -554,6 +554,19 @@ Info: This overlay is now deprecated -
44 +Info: Set custom CMA sizes, only use if you know what you are doing, might
45 + clash with other overlays like vc4-fkms-v3d and vc4-kms-v3d.
46 +Load: dtoverlay=cma,<param>=<val>
47 +Params: cma-256 CMA is 256MB (needs 1GB)
48 + cma-192 CMA is 192MB (needs 1GB)
49 + cma-128 CMA is 128MB
52 + cma-size CMA size in bytes, 4MB aligned
53 + cma-default Use upstream's default value
57 Info: Overlay for the DHT11/DHT21/DHT22 humidity/temperature sensors
58 Also sometimes found with the part number(s) AM230x.
59 @@ -2675,6 +2688,8 @@ Params: cma-256 CMA is 2
63 + cma-size CMA size in bytes, 4MB aligned
64 + cma-default Use upstream's default value
67 Name: vc4-kms-kippah-7inch
68 @@ -2692,6 +2707,8 @@ Params: cma-256 CMA is 2
72 + cma-size CMA size in bytes, 4MB aligned
73 + cma-default Use upstream's default value
74 audio Enable or disable audio over HDMI (default "on")
77 @@ -2703,6 +2720,8 @@ Params: cma-256 CMA is 2
81 + cma-size CMA size in bytes, 4MB aligned
82 + cma-default Use upstream's default value
83 audio Enable or disable audio over HDMI0 (default
85 audio1 Enable or disable audio over HDMI1 (default
87 +++ b/arch/arm/boot/dts/overlays/cma-overlay.dts
97 + compatible = "brcm,bcm2835";
101 + frag0: __overlay__ {
103 + * The default size when using this overlay is 256 MB
104 + * and should be kept as is for backwards
107 + size = <0x10000000>;
112 + cma-256 = <&frag0>,"size:0=",<0x10000000>;
113 + cma-192 = <&frag0>,"size:0=",<0xC000000>;
114 + cma-128 = <&frag0>,"size:0=",<0x8000000>;
115 + cma-96 = <&frag0>,"size:0=",<0x6000000>;
116 + cma-64 = <&frag0>,"size:0=",<0x4000000>;
117 + cma-size = <&frag0>,"size:0"; /* in bytes, 4MB aligned */
118 + cma-default = <0>,"-0";
121 --- a/arch/arm/boot/dts/overlays/upstream-overlay.dts
122 +++ b/arch/arm/boot/dts/overlays/upstream-overlay.dts
124 -// redo: ovmerge -c vc4-kms-v3d-overlay.dts,cma-96 dwc2-overlay.dts,dr_mode=otg
125 +// redo: ovmerge -c vc4-kms-v3d-overlay.dts,cma-default dwc2-overlay.dts,dr_mode=otg
131 compatible = "brcm,bcm2835";
133 - target-path = "/chosen";
136 - bootargs = "cma=256M";
137 + size = <0x10000000>;
141 - target-path = "/chosen";
143 - bootargs = "cma=192M";
147 - target-path = "/chosen";
149 - bootargs = "cma=128M";
153 - target-path = "/chosen";
155 - bootargs = "cma=96M";
159 - target-path = "/chosen";
161 - bootargs = "cma=64M";
179 target = <&pixelvalve0>;
186 target = <&pixelvalve1>;
193 target = <&pixelvalve2>;
230 claim-clocks = <BCM2835_PLLD_DSI0 BCM2835_PLLD_DSI1 BCM2835_PLLH_AUX BCM2835_PLLH_PIX>;
257 #address-cells = <1>;
259 --- a/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts
260 +++ b/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts
263 compatible = "brcm,bcm2835";
265 - target-path = "/chosen";
267 - bootargs = "cma=256M";
271 - target-path = "/chosen";
273 - bootargs = "cma=192M";
277 - target-path = "/chosen";
279 - bootargs = "cma=128M";
283 - target-path = "/chosen";
286 - bootargs = "cma=96M";
287 + size = <100663296>;
291 - target-path = "/chosen";
293 - bootargs = "cma=64M";
333 target = <&pixelvalve0>;
340 target = <&pixelvalve1>;
347 target = <&pixelvalve2>;
354 target = <&pixelvalve3>;
361 target = <&pixelvalve4>;
396 target = <&firmwarekms>;
425 #address-cells = <1>;
427 --- a/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts
428 +++ b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts
433 +#include "cma-overlay.dts"
436 compatible = "brcm,bcm2835";
439 - target-path = "/chosen";
441 - bootargs = "cma=256M";
446 - target-path = "/chosen";
448 - bootargs = "cma=192M";
453 - target-path = "/chosen";
455 - bootargs = "cma=128M";
460 - target-path = "/chosen";
462 - bootargs = "cma=96M";
467 - target-path = "/chosen";
469 - bootargs = "cma=64M";
482 target = <&firmwarekms>;
505 - cma-256 = <0>,"+0-1-2-3-4";
506 - cma-192 = <0>,"-0+1-2-3-4";
507 - cma-128 = <0>,"-0-1+2-3-4";
508 - cma-96 = <0>,"-0-1-2+3-4";
509 - cma-64 = <0>,"-0-1-2-3+4";
512 --- a/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
513 +++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
516 #include <dt-bindings/clock/bcm2835.h>
518 +#include "cma-overlay.dts"
521 compatible = "brcm,bcm2835";
524 - target-path = "/chosen";
526 - bootargs = "cma=256M";
531 - target-path = "/chosen";
533 - bootargs = "cma=192M";
538 - target-path = "/chosen";
540 - bootargs = "cma=128M";
545 - target-path = "/chosen";
547 - bootargs = "cma=96M";
552 - target-path = "/chosen";
554 - bootargs = "cma=64M";
575 target = <&pixelvalve0>;
583 target = <&pixelvalve1>;
591 target = <&pixelvalve2>;
663 - cma-256 = <0>,"+0-1-2-3-4";
664 - cma-192 = <0>,"-0+1-2-3-4";
665 - cma-128 = <0>,"-0-1+2-3-4";
666 - cma-96 = <0>,"-0-1-2+3-4";
667 - cma-64 = <0>,"-0-1-2-3+4";
671 --- a/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts
672 +++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts
675 #include <dt-bindings/clock/bcm2835.h>
677 +#include "cma-overlay.dts"
680 compatible = "brcm,bcm2835";
683 - target-path = "/chosen";
685 - bootargs = "cma=256M";
690 - target-path = "/chosen";
692 - bootargs = "cma=192M";
697 - target-path = "/chosen";
699 - bootargs = "cma=128M";
704 - target-path = "/chosen";
706 - bootargs = "cma=96M";
711 - target-path = "/chosen";
713 - bootargs = "cma=64M";
758 target = <&pixelvalve0>;
766 target = <&pixelvalve1>;
774 target = <&pixelvalve2>;
782 target = <&pixelvalve3>;
790 target = <&pixelvalve4>;
830 target = <&firmwarekms>;
861 - cma-256 = <0>,"+0-1-2-3-4";
862 - cma-192 = <0>,"-0+1-2-3-4";
863 - cma-128 = <0>,"-0-1+2-3-4";
864 - cma-96 = <0>,"-0-1-2+3-4";
865 - cma-64 = <0>,"-0-1-2-3+4";
867 - audio1 = <0>,"!22";
869 + audio1 = <0>,"!18";