mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-23 10:32:54 +00:00
54 lines
1.9 KiB
Diff
54 lines
1.9 KiB
Diff
![]() |
From eadaa138ba55e1ec29f02dbd9ff7c9058da6c047 Mon Sep 17 00:00:00 2001
|
||
|
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
|
||
|
Date: Fri, 24 Dec 2021 19:55:09 +0400
|
||
|
Subject: [PATCH 629/634] arm64: device tree: baikal: mark GPU as dma-coherent
|
||
|
|
||
|
With memattr 0x888d88 (set by arm_mali_lpae_alloc_pgtable) GPU
|
||
|
(Mali T628 r1p0) experiences a lot of DATA_INVALID faults,
|
||
|
unhandled page faults, and other errors. Also the screen goes
|
||
|
black almost immediately.
|
||
|
|
||
|
On the other hand with memattr 0x484d48 (as set by mali_kbase)
|
||
|
the GPU appears to work just fine.
|
||
|
|
||
|
Robin Murphy <robin.murphy@arm.com> explains:
|
||
|
|
||
|
> using the outer-cacheable attribute is deliberate because it is necessary
|
||
|
> for I/O-coherent GPUs to work properly (and should be irrelevant for
|
||
|
> non-coherent integrations)
|
||
|
|
||
|
> I'd note that panfrost has been working OK - to the extent that Mesa
|
||
|
> supports its older ISA - on the T624 (single core group) in Arm's
|
||
|
> Juno SoC for over a year now since commit 268af50f38b1.
|
||
|
|
||
|
> If you have to force outer non-cacheable to avoid getting translation
|
||
|
> faults and other errors that look like the GPU is inexplicably seeing
|
||
|
> the wrong data, I'd check whether you have the same thing where your
|
||
|
> integration is actually I/O-coherent and you're missing the "dma-coherent"
|
||
|
> property in your DT.
|
||
|
|
||
|
Indeed setting "gpu-coherent" property (and adjusting jobs affinity
|
||
|
for dual core group GPU) makes panfrost work just fine on Baikal-M.
|
||
|
|
||
|
X-DONTUPSTREAM
|
||
|
X-ALTLINUX-SKIP
|
||
|
---
|
||
|
arch/arm64/boot/dts/baikal/bm1000.dtsi | 1 +
|
||
|
1 file changed, 1 insertion(+)
|
||
|
|
||
|
diff --git a/arch/arm64/boot/dts/baikal/bm1000.dtsi b/arch/arm64/boot/dts/baikal/bm1000.dtsi
|
||
|
index bc69835c4..cc4e7d199 100644
|
||
|
--- a/arch/arm64/boot/dts/baikal/bm1000.dtsi
|
||
|
+++ b/arch/arm64/boot/dts/baikal/bm1000.dtsi
|
||
|
@@ -692,6 +692,7 @@ gpu: gpu@2a200000 {
|
||
|
interrupt-names = "job", "mmu", "gpu";
|
||
|
clocks = <&cmu_mali>;
|
||
|
clock-names = "gpuclk";
|
||
|
+ dma-coherent;
|
||
|
operating-points-v2 = <&gpu_opp_table>;
|
||
|
};
|
||
|
|
||
|
--
|
||
|
2.33.2
|
||
|
|