bcm27xx: switch to 5.15
[openwrt/staging/chunkeey.git] / target / linux / bcm27xx / patches-5.10 / 950-0718-overlays-Set-CMA-to-512MB-on-Pi-4-for-vc4.patch
1 From aa4e10d677dfe14c7e3132595558bcbf2fc25aca Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.com>
3 Date: Mon, 26 Jul 2021 11:05:18 +0100
4 Subject: [PATCH] overlays: Set CMA to 512MB on Pi 4 for vc4
5
6 Pi 4s have at least 1GB, and there are advantages to having more CMA
7 available (HEVC works out of the box, support for more complex video
8 setups, etc.) without significant disadvantages.
9
10 Can be overridden by appending a parameter to the dtoverlay line, e.g.
11 dtoverlay=vc4-fkms-v3d,cma-256
12
13 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
14 ---
15 arch/arm/boot/dts/overlays/Makefile | 1 +
16 arch/arm/boot/dts/overlays/README | 17 +++++++
17 arch/arm/boot/dts/overlays/overlay_map.dts | 9 ++++
18 .../dts/overlays/upstream-pi4-overlay.dts | 2 +-
19 .../dts/overlays/vc4-fkms-v3d-pi4-overlay.dts | 44 +++++++++++++++++++
20 .../dts/overlays/vc4-kms-v3d-pi4-overlay.dts | 6 ++-
21 6 files changed, 77 insertions(+), 2 deletions(-)
22 create mode 100644 arch/arm/boot/dts/overlays/vc4-fkms-v3d-pi4-overlay.dts
23
24 --- a/arch/arm/boot/dts/overlays/Makefile
25 +++ b/arch/arm/boot/dts/overlays/Makefile
26 @@ -220,6 +220,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
27 upstream.dtbo \
28 upstream-pi4.dtbo \
29 vc4-fkms-v3d.dtbo \
30 + vc4-fkms-v3d-pi4.dtbo \
31 vc4-kms-dpi-at056tn53v1.dtbo \
32 vc4-kms-dsi-7inch.dtbo \
33 vc4-kms-dsi-lt070me05000.dtbo \
34 --- a/arch/arm/boot/dts/overlays/README
35 +++ b/arch/arm/boot/dts/overlays/README
36 @@ -3268,6 +3268,23 @@ Params: cma-512 CMA is 5
37 cma-default Use upstream's default value
38
39
40 +Name: vc4-fkms-v3d-pi4
41 +Info: Enable Eric Anholt's DRM VC4 V3D driver on top of the dispmanx
42 + display stack.
43 +Load: dtoverlay=vc4-fkms-v3d-pi4,<param>
44 +Params: cma-512 CMA is 512MB (needs 1GB)
45 + cma-448 CMA is 448MB (needs 1GB)
46 + cma-384 CMA is 384MB (needs 1GB)
47 + cma-320 CMA is 320MB (needs 1GB)
48 + cma-256 CMA is 256MB (needs 1GB)
49 + cma-192 CMA is 192MB (needs 1GB)
50 + cma-128 CMA is 128MB
51 + cma-96 CMA is 96MB
52 + cma-64 CMA is 64MB
53 + cma-size CMA size in bytes, 4MB aligned
54 + cma-default Use upstream's default value
55 +
56 +
57 Name: vc4-kms-dpi-at056tn53v1
58 Info: Enable an Innolux 5.6in VGA TFT connected to DPI interface under KMS.
59 Requires vc4-kms-v3d to be loaded.
60 --- a/arch/arm/boot/dts/overlays/overlay_map.dts
61 +++ b/arch/arm/boot/dts/overlays/overlay_map.dts
62 @@ -138,6 +138,15 @@
63 bcm2711;
64 };
65
66 + vc4-fkms-v3d {
67 + bcm2835;
68 + bcm2711 = "vc4-fkms-v3d-pi4";
69 + };
70 +
71 + vc4-fkms-v3d-pi4 {
72 + bcm2711;
73 + };
74 +
75 vc4-kms-v3d {
76 bcm2835;
77 bcm2711 = "vc4-kms-v3d-pi4";
78 --- a/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts
79 +++ b/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts
80 @@ -6,7 +6,7 @@
81 #include <dt-bindings/clock/bcm2835.h>
82
83 / {
84 - compatible = "brcm,bcm2835";
85 + compatible = "brcm,bcm2711";
86 fragment@0 {
87 target = <&ddc0>;
88 __overlay__ {
89 --- /dev/null
90 +++ b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-pi4-overlay.dts
91 @@ -0,0 +1,44 @@
92 +/*
93 + * vc4-fkms-v3d-overlay.dts
94 + */
95 +
96 +/dts-v1/;
97 +/plugin/;
98 +
99 +#include "cma-overlay.dts"
100 +
101 +&frag0 {
102 + size = <(512*1024*1024)>;
103 +};
104 +
105 +/ {
106 + compatible = "brcm,bcm2711";
107 +
108 + fragment@1 {
109 + target = <&fb>;
110 + __overlay__ {
111 + status = "disabled";
112 + };
113 + };
114 +
115 + fragment@2 {
116 + target = <&firmwarekms>;
117 + __overlay__ {
118 + status = "okay";
119 + };
120 + };
121 +
122 + fragment@3 {
123 + target = <&v3d>;
124 + __overlay__ {
125 + status = "okay";
126 + };
127 + };
128 +
129 + fragment@4 {
130 + target = <&vc4>;
131 + __overlay__ {
132 + status = "okay";
133 + };
134 + };
135 +};
136 --- a/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts
137 +++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts
138 @@ -9,8 +9,12 @@
139
140 #include "cma-overlay.dts"
141
142 +&frag0 {
143 + size = <(512*1024*1024)>;
144 +};
145 +
146 / {
147 - compatible = "brcm,bcm2835";
148 + compatible = "brcm,bcm2711";
149
150 fragment@1 {
151 target = <&ddc0>;