bcm27xx: update patches from RPi foundation
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.4 / 950-0638-ARM-dts-overlays-Unify-overlay-CMA-handling.patch
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
5
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.
8
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.
13
14 Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
15 ---
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
26
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) += \
30 audiosense-pi.dtbo \
31 audremap.dtbo \
32 balena-fin.dtbo \
33 + cma.dtbo \
34 dht11.dtbo \
35 dionaudio-loco.dtbo \
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 -
40 Load: <Deprecated>
41
42
43 +Name: cma
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
50 + cma-96 CMA is 96MB
51 + cma-64 CMA is 64MB
52 + cma-size CMA size in bytes, 4MB aligned
53 + cma-default Use upstream's default value
54 +
55 +
56 Name: dht11
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
60 cma-128 CMA is 128MB
61 cma-96 CMA is 96MB
62 cma-64 CMA is 64MB
63 + cma-size CMA size in bytes, 4MB aligned
64 + cma-default Use upstream's default value
65
66
67 Name: vc4-kms-kippah-7inch
68 @@ -2692,6 +2707,8 @@ Params: cma-256 CMA is 2
69 cma-128 CMA is 128MB
70 cma-96 CMA is 96MB
71 cma-64 CMA is 64MB
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")
75
76
77 @@ -2703,6 +2720,8 @@ Params: cma-256 CMA is 2
78 cma-128 CMA is 128MB
79 cma-96 CMA is 96MB
80 cma-64 CMA is 64MB
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
84 "on")
85 audio1 Enable or disable audio over HDMI1 (default
86 --- /dev/null
87 +++ b/arch/arm/boot/dts/overlays/cma-overlay.dts
88 @@ -0,0 +1,32 @@
89 +/*
90 + * cma.dts
91 + */
92 +
93 +/dts-v1/;
94 +/plugin/;
95 +
96 +/ {
97 + compatible = "brcm,bcm2835";
98 +
99 + fragment@0 {
100 + target = <&cma>;
101 + frag0: __overlay__ {
102 + /*
103 + * The default size when using this overlay is 256 MB
104 + * and should be kept as is for backwards
105 + * compatibility.
106 + */
107 + size = <0x10000000>;
108 + };
109 + };
110 +
111 + __overrides__ {
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";
119 + };
120 +};
121 --- a/arch/arm/boot/dts/overlays/upstream-overlay.dts
122 +++ b/arch/arm/boot/dts/overlays/upstream-overlay.dts
123 @@ -1,4 +1,4 @@
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
126
127 /dts-v1/;
128 /plugin/;
129 @@ -8,114 +8,90 @@
130 / {
131 compatible = "brcm,bcm2835";
132 fragment@0 {
133 - target-path = "/chosen";
134 + target = <&cma>;
135 __dormant__ {
136 - bootargs = "cma=256M";
137 + size = <0x10000000>;
138 };
139 };
140 fragment@1 {
141 - target-path = "/chosen";
142 - __dormant__ {
143 - bootargs = "cma=192M";
144 - };
145 - };
146 - fragment@2 {
147 - target-path = "/chosen";
148 - __dormant__ {
149 - bootargs = "cma=128M";
150 - };
151 - };
152 - fragment@3 {
153 - target-path = "/chosen";
154 - __overlay__ {
155 - bootargs = "cma=96M";
156 - };
157 - };
158 - fragment@4 {
159 - target-path = "/chosen";
160 - __dormant__ {
161 - bootargs = "cma=64M";
162 - };
163 - };
164 - fragment@5 {
165 target = <&i2c2>;
166 __overlay__ {
167 status = "okay";
168 };
169 };
170 - fragment@6 {
171 + fragment@2 {
172 target = <&fb>;
173 __overlay__ {
174 status = "disabled";
175 };
176 };
177 - fragment@7 {
178 + fragment@3 {
179 target = <&pixelvalve0>;
180 __overlay__ {
181 status = "okay";
182 };
183 };
184 - fragment@8 {
185 + fragment@4 {
186 target = <&pixelvalve1>;
187 __overlay__ {
188 status = "okay";
189 };
190 };
191 - fragment@9 {
192 + fragment@5 {
193 target = <&pixelvalve2>;
194 __overlay__ {
195 status = "okay";
196 };
197 };
198 - fragment@10 {
199 + fragment@6 {
200 target = <&hvs>;
201 __overlay__ {
202 status = "okay";
203 };
204 };
205 - fragment@11 {
206 + fragment@7 {
207 target = <&hdmi>;
208 __overlay__ {
209 status = "okay";
210 };
211 };
212 - fragment@12 {
213 + fragment@8 {
214 target = <&v3d>;
215 __overlay__ {
216 status = "okay";
217 };
218 };
219 - fragment@13 {
220 + fragment@9 {
221 target = <&vc4>;
222 __overlay__ {
223 status = "okay";
224 };
225 };
226 - fragment@14 {
227 + fragment@10 {
228 target = <&clocks>;
229 __overlay__ {
230 claim-clocks = <BCM2835_PLLD_DSI0 BCM2835_PLLD_DSI1 BCM2835_PLLH_AUX BCM2835_PLLH_PIX>;
231 };
232 };
233 - fragment@15 {
234 + fragment@11 {
235 target = <&vec>;
236 __overlay__ {
237 status = "okay";
238 };
239 };
240 - fragment@16 {
241 + fragment@12 {
242 target = <&txp>;
243 __overlay__ {
244 status = "okay";
245 };
246 };
247 - fragment@17 {
248 + fragment@13 {
249 target = <&hdmi>;
250 __dormant__ {
251 dmas;
252 };
253 };
254 - fragment@18 {
255 + fragment@14 {
256 target = <&usb>;
257 #address-cells = <1>;
258 #size-cells = <1>;
259 --- a/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts
260 +++ b/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts
261 @@ -8,144 +8,120 @@
262 / {
263 compatible = "brcm,bcm2835";
264 fragment@0 {
265 - target-path = "/chosen";
266 - __dormant__ {
267 - bootargs = "cma=256M";
268 - };
269 - };
270 - fragment@1 {
271 - target-path = "/chosen";
272 - __dormant__ {
273 - bootargs = "cma=192M";
274 - };
275 - };
276 - fragment@2 {
277 - target-path = "/chosen";
278 - __dormant__ {
279 - bootargs = "cma=128M";
280 - };
281 - };
282 - fragment@3 {
283 - target-path = "/chosen";
284 + target = <&cma>;
285 __overlay__ {
286 - bootargs = "cma=96M";
287 + size = <100663296>;
288 };
289 };
290 - fragment@4 {
291 - target-path = "/chosen";
292 - __dormant__ {
293 - bootargs = "cma=64M";
294 - };
295 - };
296 - fragment@5 {
297 + fragment@1 {
298 target = <&ddc0>;
299 __overlay__ {
300 status = "okay";
301 };
302 };
303 - fragment@6 {
304 + fragment@2 {
305 target = <&ddc1>;
306 __overlay__ {
307 status = "okay";
308 };
309 };
310 - fragment@7 {
311 + fragment@3 {
312 target = <&hdmi0>;
313 __overlay__ {
314 status = "okay";
315 };
316 };
317 - fragment@8 {
318 + fragment@4 {
319 target = <&hdmi1>;
320 __overlay__ {
321 status = "okay";
322 };
323 };
324 - fragment@9 {
325 + fragment@5 {
326 target = <&hvs>;
327 __overlay__ {
328 status = "okay";
329 };
330 };
331 - fragment@10 {
332 + fragment@6 {
333 target = <&pixelvalve0>;
334 __overlay__ {
335 status = "okay";
336 };
337 };
338 - fragment@11 {
339 + fragment@7 {
340 target = <&pixelvalve1>;
341 __overlay__ {
342 status = "okay";
343 };
344 };
345 - fragment@12 {
346 + fragment@8 {
347 target = <&pixelvalve2>;
348 __overlay__ {
349 status = "okay";
350 };
351 };
352 - fragment@13 {
353 + fragment@9 {
354 target = <&pixelvalve3>;
355 __overlay__ {
356 status = "okay";
357 };
358 };
359 - fragment@14 {
360 + fragment@10 {
361 target = <&pixelvalve4>;
362 __overlay__ {
363 status = "okay";
364 };
365 };
366 - fragment@15 {
367 + fragment@11 {
368 target = <&v3d>;
369 __overlay__ {
370 status = "okay";
371 };
372 };
373 - fragment@16 {
374 + fragment@12 {
375 target = <&vc4>;
376 __overlay__ {
377 status = "okay";
378 };
379 };
380 - fragment@17 {
381 + fragment@13 {
382 target = <&txp>;
383 __overlay__ {
384 status = "okay";
385 };
386 };
387 - fragment@18 {
388 + fragment@14 {
389 target = <&fb>;
390 __overlay__ {
391 status = "disabled";
392 };
393 };
394 - fragment@19 {
395 + fragment@15 {
396 target = <&firmwarekms>;
397 __overlay__ {
398 status = "disabled";
399 };
400 };
401 - fragment@20 {
402 + fragment@16 {
403 target = <&vec>;
404 __overlay__ {
405 status = "disabled";
406 };
407 };
408 - fragment@21 {
409 + fragment@17 {
410 target = <&hdmi0>;
411 __dormant__ {
412 dmas;
413 };
414 };
415 - fragment@22 {
416 + fragment@18 {
417 target = <&hdmi1>;
418 __dormant__ {
419 dmas;
420 };
421 };
422 - fragment@23 {
423 + fragment@19 {
424 target = <&usb>;
425 #address-cells = <1>;
426 #size-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
429 @@ -5,77 +5,36 @@
430 /dts-v1/;
431 /plugin/;
432
433 +#include "cma-overlay.dts"
434 +
435 / {
436 compatible = "brcm,bcm2835";
437
438 - fragment@0 {
439 - target-path = "/chosen";
440 - __overlay__ {
441 - bootargs = "cma=256M";
442 - };
443 - };
444 -
445 fragment@1 {
446 - target-path = "/chosen";
447 - __dormant__ {
448 - bootargs = "cma=192M";
449 - };
450 - };
451 -
452 - fragment@2 {
453 - target-path = "/chosen";
454 - __dormant__ {
455 - bootargs = "cma=128M";
456 - };
457 - };
458 -
459 - fragment@3 {
460 - target-path = "/chosen";
461 - __dormant__ {
462 - bootargs = "cma=96M";
463 - };
464 - };
465 -
466 - fragment@4 {
467 - target-path = "/chosen";
468 - __dormant__ {
469 - bootargs = "cma=64M";
470 - };
471 - };
472 -
473 - fragment@5 {
474 target = <&fb>;
475 __overlay__ {
476 status = "disabled";
477 };
478 };
479
480 - fragment@6 {
481 + fragment@2 {
482 target = <&firmwarekms>;
483 __overlay__ {
484 status = "okay";
485 };
486 };
487
488 - fragment@7 {
489 + fragment@3 {
490 target = <&v3d>;
491 __overlay__ {
492 status = "okay";
493 };
494 };
495
496 - fragment@8 {
497 + fragment@4 {
498 target = <&vc4>;
499 __overlay__ {
500 status = "okay";
501 };
502 };
503 -
504 - __overrides__ {
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";
510 - };
511 };
512 --- a/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
513 +++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
514 @@ -7,108 +7,75 @@
515
516 #include <dt-bindings/clock/bcm2835.h>
517
518 +#include "cma-overlay.dts"
519 +
520 / {
521 compatible = "brcm,bcm2835";
522
523 - fragment@0 {
524 - target-path = "/chosen";
525 - __overlay__ {
526 - bootargs = "cma=256M";
527 - };
528 - };
529 -
530 fragment@1 {
531 - target-path = "/chosen";
532 - __dormant__ {
533 - bootargs = "cma=192M";
534 - };
535 - };
536 -
537 - fragment@2 {
538 - target-path = "/chosen";
539 - __dormant__ {
540 - bootargs = "cma=128M";
541 - };
542 - };
543 -
544 - fragment@3 {
545 - target-path = "/chosen";
546 - __dormant__ {
547 - bootargs = "cma=96M";
548 - };
549 - };
550 -
551 - fragment@4 {
552 - target-path = "/chosen";
553 - __dormant__ {
554 - bootargs = "cma=64M";
555 - };
556 - };
557 -
558 - fragment@5 {
559 target = <&i2c2>;
560 __overlay__ {
561 status = "okay";
562 };
563 };
564
565 - fragment@6 {
566 + fragment@2 {
567 target = <&fb>;
568 __overlay__ {
569 status = "disabled";
570 };
571 };
572
573 - fragment@7 {
574 + fragment@3 {
575 target = <&pixelvalve0>;
576 __overlay__ {
577 status = "okay";
578 };
579 };
580
581 - fragment@8 {
582 + fragment@4 {
583 target = <&pixelvalve1>;
584 __overlay__ {
585 status = "okay";
586 };
587 };
588
589 - fragment@9 {
590 + fragment@5 {
591 target = <&pixelvalve2>;
592 __overlay__ {
593 status = "okay";
594 };
595 };
596
597 - fragment@10 {
598 + fragment@6 {
599 target = <&hvs>;
600 __overlay__ {
601 status = "okay";
602 };
603 };
604
605 - fragment@11 {
606 + fragment@7 {
607 target = <&hdmi>;
608 __overlay__ {
609 status = "okay";
610 };
611 };
612
613 - fragment@12 {
614 + fragment@8 {
615 target = <&v3d>;
616 __overlay__ {
617 status = "okay";
618 };
619 };
620
621 - fragment@13 {
622 + fragment@9 {
623 target = <&vc4>;
624 __overlay__ {
625 status = "okay";
626 };
627 };
628
629 - fragment@14 {
630 + fragment@10 {
631 target = <&clocks>;
632 __overlay__ {
633 claim-clocks = <
634 @@ -120,21 +87,21 @@
635 };
636 };
637
638 - fragment@15 {
639 + fragment@11 {
640 target = <&vec>;
641 __overlay__ {
642 status = "okay";
643 };
644 };
645
646 - fragment@16 {
647 + fragment@12 {
648 target = <&txp>;
649 __overlay__ {
650 status = "okay";
651 };
652 };
653
654 - fragment@17 {
655 + fragment@13 {
656 target = <&hdmi>;
657 __dormant__ {
658 dmas;
659 @@ -142,11 +109,6 @@
660 };
661
662 __overrides__ {
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";
668 audio = <0>,"!17";
669 };
670 };
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
673 @@ -7,164 +7,131 @@
674
675 #include <dt-bindings/clock/bcm2835.h>
676
677 +#include "cma-overlay.dts"
678 +
679 / {
680 compatible = "brcm,bcm2835";
681
682 - fragment@0 {
683 - target-path = "/chosen";
684 - __overlay__ {
685 - bootargs = "cma=256M";
686 - };
687 - };
688 -
689 fragment@1 {
690 - target-path = "/chosen";
691 - __dormant__ {
692 - bootargs = "cma=192M";
693 - };
694 - };
695 -
696 - fragment@2 {
697 - target-path = "/chosen";
698 - __dormant__ {
699 - bootargs = "cma=128M";
700 - };
701 - };
702 -
703 - fragment@3 {
704 - target-path = "/chosen";
705 - __dormant__ {
706 - bootargs = "cma=96M";
707 - };
708 - };
709 -
710 - fragment@4 {
711 - target-path = "/chosen";
712 - __dormant__ {
713 - bootargs = "cma=64M";
714 - };
715 - };
716 -
717 - fragment@5 {
718 target = <&ddc0>;
719 __overlay__ {
720 status = "okay";
721 };
722 };
723
724 - fragment@6 {
725 + fragment@2 {
726 target = <&ddc1>;
727 __overlay__ {
728 status = "okay";
729 };
730 };
731
732 - fragment@7 {
733 + fragment@3 {
734 target = <&hdmi0>;
735 __overlay__ {
736 status = "okay";
737 };
738 };
739
740 - fragment@8 {
741 + fragment@4 {
742 target = <&hdmi1>;
743 __overlay__ {
744 status = "okay";
745 };
746 };
747
748 - fragment@9 {
749 + fragment@5 {
750 target = <&hvs>;
751 __overlay__ {
752 status = "okay";
753 };
754 };
755
756 - fragment@10 {
757 + fragment@6 {
758 target = <&pixelvalve0>;
759 __overlay__ {
760 status = "okay";
761 };
762 };
763
764 - fragment@11 {
765 + fragment@7 {
766 target = <&pixelvalve1>;
767 __overlay__ {
768 status = "okay";
769 };
770 };
771
772 - fragment@12 {
773 + fragment@8 {
774 target = <&pixelvalve2>;
775 __overlay__ {
776 status = "okay";
777 };
778 };
779
780 - fragment@13 {
781 + fragment@9 {
782 target = <&pixelvalve3>;
783 __overlay__ {
784 status = "okay";
785 };
786 };
787
788 - fragment@14 {
789 + fragment@10 {
790 target = <&pixelvalve4>;
791 __overlay__ {
792 status = "okay";
793 };
794 };
795
796 - fragment@15 {
797 + fragment@11 {
798 target = <&v3d>;
799 __overlay__ {
800 status = "okay";
801 };
802 };
803
804 - fragment@16 {
805 + fragment@12 {
806 target = <&vc4>;
807 __overlay__ {
808 status = "okay";
809 };
810 };
811
812 - fragment@17 {
813 + fragment@13 {
814 target = <&txp>;
815 __overlay__ {
816 status = "okay";
817 };
818 };
819
820 - fragment@18 {
821 + fragment@14 {
822 target = <&fb>;
823 __overlay__ {
824 status = "disabled";
825 };
826 };
827
828 - fragment@19 {
829 + fragment@15 {
830 target = <&firmwarekms>;
831 __overlay__ {
832 status = "disabled";
833 };
834 };
835
836 - fragment@20 {
837 + fragment@16 {
838 target = <&vec>;
839 __overlay__ {
840 status = "disabled";
841 };
842 };
843
844 - fragment@21 {
845 + fragment@17 {
846 target = <&hdmi0>;
847 __dormant__ {
848 dmas;
849 };
850 };
851
852 - fragment@22 {
853 + fragment@18 {
854 target = <&hdmi1>;
855 __dormant__ {
856 dmas;
857 @@ -172,12 +139,7 @@
858 };
859
860 __overrides__ {
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";
866 - audio = <0>,"!21";
867 - audio1 = <0>,"!22";
868 + audio = <0>,"!17";
869 + audio1 = <0>,"!18";
870 };
871 };