RZ/G2L SoC embeds Mali-G31 bifrost GPU. This patch series aims to add support for the same
It is tested with latest drm-misc-next + mesa21.3.0 + out of tree patch for (du + DSI) + mesa configurtion for RZ/G2L.
Tested the kmscube application.
test logs:- root@smarc-rzg2l:~# kmscube Using display 0xaaaadb6e7d30 with EGL version 1.4 =================================== EGL information: version: "1.4" vendor: "Mesa Project" ..... =================================== OpenGL ES 2.x information: version: "OpenGL ES 3.1 Mesa 21.3.0" shading language version: "OpenGL ES GLSL ES 3.10" vendor: "Panfrost" renderer: "Mali-G31 (Panfrost)" .... =================================== ^C root@smarc-rzg2l:~# cat /proc/interrupts | grep gpu 84: 8 0 GICv3 185 Level panfrost-gpu root@smarc-rzg2l:~# cat /proc/interrupts | grep panfrost 82: 587287 0 GICv3 186 Level panfrost-job 83: 2 0 GICv3 187 Level panfrost-mmu 84: 8 0 GICv3 185 Level panfrost-gpu
root@smarc-rzg2l:~# cat /sys/class/devfreq/11840000.gpu/trans_stat From : To : 50000000 62500000 100000000 125000000 200000000 250000000 400000000 500000000 time(ms) * 50000000: 0 0 0 0 0 0 0 0 72 62500000: 0 0 0 0 0 0 0 0 0 100000000: 0 0 0 0 0 0 0 0 0 125000000: 0 0 0 0 0 0 0 1 68 200000000: 0 0 0 0 0 0 0 1 68 250000000: 1 0 0 0 0 0 0 0 84 400000000: 0 0 0 0 0 0 0 0 0 500000000: 0 0 0 1 1 1 0 0 736 Total transition : 6 root@smarc-rzg2l:~# kmscube Using display 0xaaaaf7a421b0 with EGL version 1.4 =================================== EGL information: version: "1.4" vendor: "Mesa Project" ..... =================================== OpenGL ES 2.x information: version: "OpenGL ES 3.1 Mesa 21.3.0" shading language version: "OpenGL ES GLSL ES 3.10" vendor: "Panfrost" renderer: "Mali-G31 (Panfrost)" ...... ===================================
root@smarc-rzg2l:~# root@smarc-rzg2l:~# root@smarc-rzg2l:~# cat /sys/class/devfreq/11840000.gpu/trans_stat From : To : 50000000 62500000 100000000 125000000 200000000 250000000 400000000 500000000 time(ms) * 50000000: 0 0 0 0 0 0 0 1 144 62500000: 0 0 0 0 0 0 0 0 0 100000000: 0 0 0 0 0 0 0 9 524 125000000: 0 0 9 0 0 0 0 3 2544 200000000: 0 0 0 11 0 0 0 46 3304 250000000: 1 0 0 0 33 0 0 0 7496 400000000: 0 0 0 0 16 19 0 0 2024 500000000: 1 0 0 1 8 15 35 0 4032 Total transition : 208
Mesa patch for RZ/G2L --------------------- src/gallium/targets/dri/meson.build + 'rcar-du_dri.so', src/gallium/targets/dri/target.c +DEFINE_LOADER_DRM_ENTRYPOINT(rcar_du)
Biju Das (6): clk: renesas: r9a07g044: Rename CLK_PLL3_DIV4 macro clk: renesas: r9a07g044: Add mux and divider for G clock clk: renesas: r9a07g044: Add GPU clock and reset entries dt-bindings: gpu: mali-bifrost: Document RZ/G2L support arm64: dts: renesas: r9a07g044: Add Mali-G31 GPU node arm64: dts: renesas: rzg2l-smarc-som: Add vdd core regulator
.../bindings/gpu/arm,mali-bifrost.yaml | 32 +++++++++- arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 64 +++++++++++++++++++ .../boot/dts/renesas/rzg2l-smarc-som.dtsi | 13 ++++ drivers/clk/renesas/r9a07g044-cpg.c | 19 +++++- drivers/clk/renesas/rzg2l-cpg.h | 4 ++ 5 files changed, 128 insertions(+), 4 deletions(-)
The Renesas RZ/G2{L, LC} SoC (a.k.a R9A07G044) has a Bifrost Mali-G31 GPU, add a compatible string for it.
Signed-off-by: Biju Das biju.das.jz@bp.renesas.com Reviewed-by: Lad Prabhakar prabhakar.mahadev-lad.rj@bp.renesas.com --- .../bindings/gpu/arm,mali-bifrost.yaml | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml index 6f98dd55fb4c..c9fac2498f5e 100644 --- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml @@ -19,6 +19,7 @@ properties: - amlogic,meson-g12a-mali - mediatek,mt8183-mali - realtek,rtd1619-mali + - renesas,r9a07g044-mali - rockchip,px30-mali - rockchip,rk3568-mali - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable @@ -27,19 +28,30 @@ properties: maxItems: 1
interrupts: + minItems: 3 items: - description: Job interrupt - description: MMU interrupt - description: GPU interrupt + - description: EVENT interrupt
interrupt-names: + minItems: 3 items: - const: job - const: mmu - const: gpu + - const: event
clocks: - maxItems: 1 + minItems: 1 + maxItems: 3 + + clock-names: + items: + - const: gpu + - const: bus + - const: bus_ace
mali-supply: true
@@ -52,7 +64,8 @@ properties: maxItems: 3
resets: - maxItems: 2 + minItems: 1 + maxItems: 3
"#cooling-cells": const: 2 @@ -113,6 +126,21 @@ allOf: - sram-supply - power-domains - power-domain-names + - if: + properties: + compatible: + contains: + const: renesas,r9a07g044-mali + then: + properties: + interrupt-names: + minItems: 4 + clock-names: + minItems: 3 + required: + - clock-names + - power-domains + - resets else: properties: power-domains:
Hi Biju,
On Fri, Dec 3, 2021 at 12:52 PM Biju Das biju.das.jz@bp.renesas.com wrote:
The Renesas RZ/G2{L, LC} SoC (a.k.a R9A07G044) has a Bifrost Mali-G31 GPU, add a compatible string for it.
Signed-off-by: Biju Das biju.das.jz@bp.renesas.com Reviewed-by: Lad Prabhakar prabhakar.mahadev-lad.rj@bp.renesas.com
Thanks for your patch!
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -52,7 +64,8 @@ properties: maxItems: 3
resets:
- maxItems: 2
- minItems: 1
2, as before?
- maxItems: 3
Perhaps you should add reset-names?
"#cooling-cells": const: 2 @@ -113,6 +126,21 @@ allOf: - sram-supply - power-domains - power-domain-names
- if:
properties:
compatible:
contains:
const: renesas,r9a07g044-mali
- then:
properties:
interrupt-names:
minItems: 4
clock-names:
minItems: 3
required:
- clock-names
- power-domains
- resets
reset-names
else: properties: power-domains:
The rest looks good to me, but I'm no Mali expert.
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
Hi Geert,
Thanks for the feedback.
Subject: Re: [PATCH 4/6] dt-bindings: gpu: mali-bifrost: Document RZ/G2L support
Hi Biju,
On Fri, Dec 3, 2021 at 12:52 PM Biju Das biju.das.jz@bp.renesas.com wrote:
The Renesas RZ/G2{L, LC} SoC (a.k.a R9A07G044) has a Bifrost Mali-G31 GPU, add a compatible string for it.
Signed-off-by: Biju Das biju.das.jz@bp.renesas.com Reviewed-by: Lad Prabhakar prabhakar.mahadev-lad.rj@bp.renesas.com
Thanks for your patch!
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -52,7 +64,8 @@ properties: maxItems: 3
resets:
- maxItems: 2
- minItems: 1
2, as before?
OK. Will do.
- maxItems: 3
Perhaps you should add reset-names?
Agreed. Will remove max items add reset-names instead ("rst", "axi_rst", "ace_rst")
"#cooling-cells": const: 2 @@ -113,6 +126,21 @@ allOf: - sram-supply - power-domains - power-domain-names
- if:
properties:
compatible:
contains:
const: renesas,r9a07g044-mali
- then:
properties:
interrupt-names:
minItems: 4
clock-names:
minItems: 3
required:
- clock-names
- power-domains
- resets
reset-names
Ok.
Regards, Biju
else: properties: power-domains:
The rest looks good to me, but I'm no Mali expert.
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
dri-devel@lists.freedesktop.org