Skip to content

mali-bifrost: use devicetree platform instead of meson#2366

Open
aenertia wants to merge 1 commit intoROCKNIX:nextfrom
aenertia:mali-bifrost-devicetree-platform
Open

mali-bifrost: use devicetree platform instead of meson#2366
aenertia wants to merge 1 commit intoROCKNIX:nextfrom
aenertia:mali-bifrost-devicetree-platform

Conversation

@aenertia
Copy link
Contributor

@aenertia aenertia commented Mar 1, 2026

Switch CONFIG_MALI_PLATFORM_NAME from meson to devicetree. The meson platform backend calls clk_disable_unprepare() during runtime PM suspend without a matching clk_prepare_enable() on resume. On Rockchip SoCs (RK3566, RK3326), this leaves GPU clocks unprepared when the power domain re-enables them, triggering repeated warnings:

WARNING: Enabling unprepared clk 'gpu'
rockchip-pm-domain: failed to enable clocks

The devicetree platform backend uses the standard DT power domain and clock framework correctly, coordinating with the kernel power domain driver on all SoCs (Rockchip, Amlogic S922X).

@sydarn
Copy link
Contributor

sydarn commented Mar 1, 2026

did you test this on rk3326?

@sydarn
Copy link
Contributor

sydarn commented Mar 1, 2026

probably handled by the end of this patch: projects/ROCKNIX/devices/RK3326/patches/mali-bifrost/003-midgard-refactor-power-init-and-fixed-unbalanced-run.patch

The start of that patch still is needed on for new mali_kbase on rocknix, due to horrors in dmesg.

@aenertia
Copy link
Contributor Author

aenertia commented Mar 1, 2026

yeah it's just spamming without this due to the s922x fallthrough

@aenertia
Copy link
Contributor Author

aenertia commented Mar 1, 2026

tested on both 3326 and 3566 - although the 3326 wasn't completely clean as it was for my cheapo xf40h which needs ... extra things

@porschemad911
Copy link
Contributor

porschemad911 commented Mar 2, 2026

I'll test on S922X

@porschemad911
Copy link
Contributor

S922X libmali is totally broken, many errors in dmesg:

[   15.680294] mali ffe40000.gpu_mali_vulkan: AS_ACTIVE bit stuck for as 1. Might be caused by unstable GPU clk/pwr or faulty system
[   15.680331] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   15.680351] mali ffe40000.gpu_mali_vulkan: Wait for AS_ACTIVE bit failed for as 1, before sending MMU command 2
[   15.680362] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.690778] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.708799] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.709713] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.710011] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.710358] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.710417] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.710754] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.714433] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.715699] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.715973] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.716352] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   15.716426] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   17.508220] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   17.514698] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   17.515098] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   17.520857] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   17.710162] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   17.710387] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   17.711136] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   17.711208] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   18.042838] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   18.073145] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   18.285527] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   18.290681] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   18.682434] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   18.682463] mali ffe40000.gpu_mali_vulkan: Register state:
[   18.682475] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x0000000d
[   18.682488] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000002
[   18.682498] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000000      JS0_HEAD=0x0000000000000000
[   18.682511] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000008      JS1_HEAD=0x0000ffffa3f38040
[   18.682522] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   18.682533] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   18.682543] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   18.682554] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   18.682563] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   18.682573] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   18.683077] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 1
[   19.182678] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   19.183200] mali ffe40000.gpu_mali_vulkan: Reset complete
[   19.602158] mali ffe40000.gpu_mali_vulkan: AS_ACTIVE bit stuck for as 2. Might be caused by unstable GPU clk/pwr or faulty system
[   19.602221] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   19.602249] mali ffe40000.gpu_mali_vulkan: Wait for AS_ACTIVE bit failed for as 2, before sending MMU command 4
[   19.602265] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.603720] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.604225] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.612985] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.613361] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.613688] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.613967] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.614106] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.614840] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.615446] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.616263] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.617222] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.617843] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.618688] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.619644] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.620316] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.621185] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.622138] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.622763] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.623641] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.624629] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.625257] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.626229] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.627221] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.627914] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.628766] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.629682] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.630299] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.631289] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.632044] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.632436] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.633158] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.633506] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.633987] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.684354] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   19.684451] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   22.602445] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   22.602482] mali ffe40000.gpu_mali_vulkan: Register state:
[   22.602497] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   22.602515] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000002
[   22.602532] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000000      JS0_HEAD=0x0000000000000000
[   22.602550] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000008      JS1_HEAD=0x0000ffffa3e88040
[   22.602568] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   22.602585] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   22.602601] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   22.602618] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   22.602634] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   22.602650] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   22.602747] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 1
[   23.102777] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   23.103014] mali ffe40000.gpu_mali_vulkan: Reset complete
[   23.103441] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   23.103542] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   28.203218] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   28.203250] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   28.703322] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[   28.703361] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   31.703519] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   31.703545] mali ffe40000.gpu_mali_vulkan: Register state:
[   31.703556] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   31.703568] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000003
[   31.703579] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7f244100
[   31.703591] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000008      JS1_HEAD=0x0000ffff7eff8000
[   31.703603] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   31.703614] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   31.703624] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   31.703635] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   31.703644] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   31.703654] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   31.703921] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   32.203756] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   32.203967] mali ffe40000.gpu_mali_vulkan: Reset complete
[   32.203992] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 1
[   32.624233] mali ffe40000.gpu_mali_vulkan: AS_ACTIVE bit stuck for as 1. Might be caused by unstable GPU clk/pwr or faulty system
[   32.624280] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   32.624297] mali ffe40000.gpu_mali_vulkan: Wait for AS_ACTIVE bit failed for as 1, before sending MMU command 4
[   32.624308] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   32.689023] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   35.624430] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   35.624457] mali ffe40000.gpu_mali_vulkan: Register state:
[   35.624467] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   35.624479] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000003
[   35.624490] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7f0b5100
[   35.624502] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000008      JS1_HEAD=0x0000ffffa3cd8040
[   35.624514] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   35.624524] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   35.624534] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   35.624545] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   35.624555] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   35.624564] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   35.624627] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   35.624650] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 1
[   36.124664] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   36.124877] mali ffe40000.gpu_mali_vulkan: Reset complete
[   36.125080] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   41.225262] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   41.225294] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   41.725361] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[   41.725394] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   44.725645] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   44.725672] mali ffe40000.gpu_mali_vulkan: Register state:
[   44.725682] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   44.725695] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000003
[   44.725706] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7ef58100
[   44.725718] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000008      JS1_HEAD=0x0000ffffa3ab8040
[   44.725730] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   44.725740] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   44.725750] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   44.725760] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   44.725770] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   44.725780] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   44.725856] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   45.225964] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   45.226179] mali ffe40000.gpu_mali_vulkan: Reset complete
[   45.226191] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 1
[   45.226477] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   45.646314] mali ffe40000.gpu_mali_vulkan: AS_ACTIVE bit stuck for as 1. Might be caused by unstable GPU clk/pwr or faulty system
[   45.646356] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   45.646375] mali ffe40000.gpu_mali_vulkan: Wait for AS_ACTIVE bit failed for as 1, before sending MMU command 5
[   45.646386] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.647738] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.648894] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.693263] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.693412] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.694844] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.695261] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.695572] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.695744] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.696082] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.696141] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.737289] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.737540] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.737657] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.738555] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.738755] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.789212] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   45.789296] mali ffe40000.gpu_mali_vulkan: Flush for GPU page table update did not complete
[   48.646681] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   48.646707] mali ffe40000.gpu_mali_vulkan: Register state:
[   48.646717] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   48.646730] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000001
[   48.646740] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7ecf8100
[   48.646753] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000000      JS1_HEAD=0x0000000000000000
[   48.646764] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   48.646775] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   48.646785] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   48.646795] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   48.646805] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   48.646815] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   48.646874] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   49.146923] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   49.147125] mali ffe40000.gpu_mali_vulkan: Reset complete
[   54.247662] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   54.247694] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   54.747783] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[   54.747815] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   57.748060] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   57.748086] mali ffe40000.gpu_mali_vulkan: Register state:
[   57.748097] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   57.748109] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000003
[   57.748120] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7ec48100
[   57.748132] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000008      JS1_HEAD=0x0000ffff7ef58000
[   57.748144] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   57.748154] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   57.748164] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   57.748175] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   57.748184] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   57.748194] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   57.748267] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   58.248319] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   58.248477] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 1
[   58.248507] mali ffe40000.gpu_mali_vulkan: Reset complete
[   63.348905] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   63.348938] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   63.849010] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[   63.849040] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   66.849246] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   66.849273] mali ffe40000.gpu_mali_vulkan: Register state:
[   66.849284] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   66.849296] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000003
[   66.849307] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7ea58100
[   66.849319] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000008      JS1_HEAD=0x0000ffff7e048000
[   66.849331] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   66.849341] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   66.849351] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   66.849362] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   66.849371] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   66.849381] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   66.849453] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   67.349497] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   67.349653] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 1
[   67.349689] mali ffe40000.gpu_mali_vulkan: Reset complete
[   72.450016] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   72.950107] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[   72.950139] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   75.950319] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   75.950345] mali ffe40000.gpu_mali_vulkan: Register state:
[   75.950355] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   75.950368] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000001
[   75.950379] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7e948100
[   75.950391] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000000      JS1_HEAD=0x0000000000000000
[   75.950403] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   75.950413] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   75.950423] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   75.950434] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   75.950443] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   75.950464] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   75.950524] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   76.450546] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   76.450727] mali ffe40000.gpu_mali_vulkan: Reset complete
[   81.551071] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   82.051169] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[   82.051197] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   85.051366] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   85.051393] mali ffe40000.gpu_mali_vulkan: Register state:
[   85.051404] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   85.051416] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000001
[   85.051427] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7e918100
[   85.051439] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000000      JS1_HEAD=0x0000000000000000
[   85.051451] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   85.051462] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   85.051471] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   85.051482] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   85.051491] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   85.051501] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   85.051572] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   85.551599] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   85.551784] mali ffe40000.gpu_mali_vulkan: Reset complete
[   90.652117] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[   91.152210] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[   91.152241] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[   94.152410] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[   94.152436] mali ffe40000.gpu_mali_vulkan: Register state:
[   94.152447] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[   94.152459] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000001
[   94.152469] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7e8c8100
[   94.152481] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000000      JS1_HEAD=0x0000000000000000
[   94.152493] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[   94.152503] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[   94.152513] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[   94.152524] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[   94.152545] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[   94.152555] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[   94.152615] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[   94.652639] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[   94.652836] mali ffe40000.gpu_mali_vulkan: Reset complete
[   99.753118] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[  100.253213] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[  100.253245] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop
[  103.253413] mali ffe40000.gpu_mali_vulkan: Resetting GPU (allowing up to 500 ms)
[  103.253439] mali ffe40000.gpu_mali_vulkan: Register state:
[  103.253450] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_RAWSTAT=0x00000200 GPU_STATUS=0x00000009
[  103.253462] mali ffe40000.gpu_mali_vulkan:   JOB_IRQ_RAWSTAT=0x00000000 JOB_IRQ_JS_STATE=0x00000001
[  103.253472] mali ffe40000.gpu_mali_vulkan:   JS0_STATUS=0x00000008      JS0_HEAD=0x0000ffff7e888100
[  103.253485] mali ffe40000.gpu_mali_vulkan:   JS1_STATUS=0x00000000      JS1_HEAD=0x0000000000000000
[  103.253496] mali ffe40000.gpu_mali_vulkan:   JS2_STATUS=0x00000000      JS2_HEAD=0x0000000000000000
[  103.253507] mali ffe40000.gpu_mali_vulkan:   MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
[  103.253517] mali ffe40000.gpu_mali_vulkan:   GPU_IRQ_MASK=0x00000000    JOB_IRQ_MASK=0x00000000     MMU_IRQ_MASK=0x00000000
[  103.253527] mali ffe40000.gpu_mali_vulkan:   PWR_OVERRIDE0=0x00000000   PWR_OVERRIDE1=0x00000000
[  103.253537] mali ffe40000.gpu_mali_vulkan:   SHADER_CONFIG=0x00020000   L2_MMU_CONFIG=0x00000000
[  103.253558] mali ffe40000.gpu_mali_vulkan:   TILER_CONFIG=0x00000000    JM_CONFIG=0x000f0000
[  103.253614] mali ffe40000.gpu_mali_vulkan: t6xx: GPU fault 0x4002 from job slot 0
[  103.753649] mali ffe40000.gpu_mali_vulkan: Failed to soft-reset GPU (timed out after 500 ms), now attempting a hard reset
[  103.753850] mali ffe40000.gpu_mali_vulkan: Reset complete
[  108.854093] mali ffe40000.gpu_mali_vulkan: JS: Job Hard-Stopped (took more than 50 ticks at 100 ms/tick)
[  109.354145] mali ffe40000.gpu_mali_vulkan: JS: Job has been on the GPU for too long (JS_RESET_TICKS_SS/DUMPING timeout hit). Issuing GPU soft-reset to resolve.
[  109.354175] mali ffe40000.gpu_mali_vulkan: Preparing to soft-reset GPU: Waiting (up to 3000 ms) for all jobs to complete soft-stop

@aenertia
Copy link
Contributor Author

aenertia commented Mar 2, 2026

Oh fun. I'll take another look after work today - and see if I can root cause this; otherwise adding a device case is probably the minimal fix.

@sydarn
Copy link
Contributor

sydarn commented Mar 2, 2026

Since s922x is the actual meson platform I don't see why we shouldn't use it there.

The other main issue on RK is that the kernel oppsies on suspend/resume, on 6.12 and r51 mali_kbase this was worked around with this patch: https://github.com/ROCKNIX/distribution/blob/next/projects/ROCKNIX/devices/RK3326/patches/mali-bifrost/003-midgard-refactor-power-init-and-fixed-unbalanced-run.patch

Specifically the first part patching product/kernel/drivers/gpu/arm/midgard/mali_kbase_core_linux.c

I tried to blindly port this to r54 that we now use on 6.18, but it freezes on boot. So some more work would be need figuring out the the suspend oppsies.

Switch CONFIG_MALI_PLATFORM_NAME to devicetree for Rockchip devices
(RK3326, RK3566, RK3588) to resolve GPU clock management issues
during runtime PM cycles. The meson backend calls
clk_disable_unprepare() on suspend without matching
clk_prepare_enable() on resume, leaving GPU clocks unprepared when
power domains re-enable them.

The devicetree backend leverages standard power domain and clock
frameworks, coordinating properly with kernel power domain drivers.

S922X retains the meson backend — it is an actual Amlogic Meson SoC
and requires the meson platform for correct GPU initialization.
Switching it to devicetree causes AS_ACTIVE bit stuck errors, page
table flush failures, and repeated GPU resets (fault 0x4002).

Tested on RK3326, RK3566. S922X regression confirmed and resolved
by preserving meson backend for that device only.
@aenertia aenertia force-pushed the mali-bifrost-devicetree-platform branch from c08b61e to 79c5df7 Compare March 3, 2026 08:40
@aenertia
Copy link
Contributor Author

aenertia commented Mar 3, 2026

@porschemad911 when you get a chance can you test again.

@aenertia
Copy link
Contributor Author

aenertia commented Mar 3, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants