* [PATCH 0/4] Exynos 5422: Mali-T628 GPU compute fixes
@ 2026-11-06 5:41 Young-Jun Hong
2026-11-06 5:41 ` [PATCH 2/4] clk: samsung: exynos5420: add VPLL rates for 650, 700 and 750 MHz Young-Jun Hong
0 siblings, 1 reply; 3+ messages in thread
From: Young-Jun Hong @ 2026-11-06 5:41 UTC (permalink / raw)
Cc: Adrián Larumbe, Alexey Sheplyakov, Alim Akhtar,
Boris Brezillon, Brian Masney, Chanwoo Choi, David Airlie,
dri-devel, iommu, Jerome Brunet, Joerg Roedel (AMD),
Krzysztof Kozlowski, linux-arm-kernel, linux-clk, linux-kernel,
linux-samsung-soc, Maarten Lankhorst, Maxime Ripard,
Peter Griffin, Rob Herring, Robin Murphy, Simona Vetter,
Stephen Boyd, Steven Price, Sylwester Nawrocki, Thomas Zimmermann,
Vadim V. Vlasov, Will Deacon
These patches make the Mali-T628 MP6 GPU of the Exynos 5422 (Samsung
ARTIK 10, also Odroid-XU3/XU4) usable for OpenCL compute with panfrost
and Mesa Rusticl. They touch three subsystems and can be taken
independently:
1/4 iommu: the GPU is not cache coherent on this SoC; its LPAE page
tables must use inner shareable, or the first large GPU buffer
after boot hangs the SoC.
2/4 clk: VPLL rates for GPU operating points above 600 MHz. The
ARTIK 10 device tree is not in mainline, and the mainline 5422
boards stop at 600 MHz; they can use these rates once higher
OPPs are added.
3/4 drm/panfrost: the job affinity names only the shader cores that
are powered.
4/4 drm/panfrost (RFC): power both core groups and let a job opt in
to all of them; the L2 caches of the two groups are not coherent,
so the default stays on the first group.
1-3 were tested on the board (Linux 6.12.55 based) and cross-compiled
on 7.4-rc1. 4 is compile-tested on 7.4-rc1; the same logic, ported to the
board's 6.12-based panfrost module, was tested with the matching Mesa
change: jobs without the flag stay on the first group, jobs that opt in
use all six cores, and global atomics stay correct.
Background, test programs and results:
https://github.com/nirvanahyj-com/mali-t628-opencl/tree/v1
The analysis, the code and the changelogs were produced with Claude Code
(Anthropic), a coding assistant.
Young-Jun Hong (4):
iommu/io-pgtable-arm: use inner shareable for Mali LPAE on a
non-coherent GPU
clk: samsung: exynos5420: add VPLL rates for 650, 700 and 750 MHz
drm/panfrost: only put powered shader cores in the job affinity
drm/panfrost: let jobs opt in to all core groups
drivers/clk/samsung/clk-exynos5420.c | 3 +++
drivers/gpu/drm/panfrost/panfrost_drv.c | 7 ++++++-
drivers/gpu/drm/panfrost/panfrost_gpu.c | 25 +++++++++++++++----------
drivers/gpu/drm/panfrost/panfrost_gpu.h | 2 ++
drivers/gpu/drm/panfrost/panfrost_job.c | 10 ++++++----
drivers/iommu/io-pgtable-arm.c | 7 +++++++
include/uapi/drm/panfrost_drm.h | 10 ++++++++++
7 files changed, 49 insertions(+), 15 deletions(-)
--
2.47.3
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/4] clk: samsung: exynos5420: add VPLL rates for 650, 700 and 750 MHz
2026-11-06 5:41 [PATCH 0/4] Exynos 5422: Mali-T628 GPU compute fixes Young-Jun Hong
@ 2026-11-06 5:41 ` Young-Jun Hong
2026-11-06 14:45 ` Henrik Grimler
0 siblings, 1 reply; 3+ messages in thread
From: Young-Jun Hong @ 2026-11-06 5:41 UTC (permalink / raw)
Cc: Krzysztof Kozlowski, Sylwester Nawrocki, Chanwoo Choi,
Peter Griffin, Alim Akhtar, Stephen Boyd, Brian Masney,
Jerome Brunet, linux-samsung-soc, linux-clk, linux-arm-kernel,
linux-kernel
The VPLL drives the G3D (Mali) clock on Exynos 5420/5422. Its rate table
stops at 600 MHz, so GPU OPPs above 600 MHz cannot be reached:
clk_set_rate() silently keeps fout_vpll at 600 MHz.
Add the 650, 700 and 750 MHz rows (VCO 1300/1400/1500 MHz, using the same
P/M/S style as the APLL rows).
Tested on Samsung ARTIK 10 (Exynos 5422): with these rows the G3D devfreq
reaches 700 and 750 MHz, and the OpenCL accuracy suite passes 96/96 at
750 MHz with a board-specific 1.35 V OPP.
The analysis, the code and this changelog were produced with Claude
Code (Anthropic), a coding assistant.
Signed-off-by: Young-Jun Hong <nirvanah@nirvanahyj.com>
---
drivers/clk/samsung/clk-exynos5420.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 400a5c59815c..1b4b0ae16765 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -1451,6 +1451,9 @@ static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] = {
};
static const struct samsung_pll_rate_table exynos5420_vpll_24mhz_tbl[] = {
+ PLL_35XX_RATE(24 * MHZ, 750000000U, 125, 2, 1),
+ PLL_35XX_RATE(24 * MHZ, 700000000U, 175, 3, 1),
+ PLL_35XX_RATE(24 * MHZ, 650000000U, 325, 6, 1),
PLL_35XX_RATE(24 * MHZ, 600000000U, 200, 2, 2),
PLL_35XX_RATE(24 * MHZ, 543000000U, 181, 2, 2),
PLL_35XX_RATE(24 * MHZ, 480000000U, 160, 2, 2),
--
2.47.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 2/4] clk: samsung: exynos5420: add VPLL rates for 650, 700 and 750 MHz
2026-11-06 5:41 ` [PATCH 2/4] clk: samsung: exynos5420: add VPLL rates for 650, 700 and 750 MHz Young-Jun Hong
@ 2026-11-06 14:45 ` Henrik Grimler
0 siblings, 0 replies; 3+ messages in thread
From: Henrik Grimler @ 2026-11-06 14:45 UTC (permalink / raw)
To: Young-Jun Hong
Cc: Krzysztof Kozlowski, Sylwester Nawrocki, Chanwoo Choi,
Peter Griffin, Alim Akhtar, Stephen Boyd, Brian Masney,
Jerome Brunet, linux-samsung-soc, linux-clk, linux-arm-kernel,
linux-kernel
Hi Young-Jun,
On Fri, Nov 06, 2026 at 02:41:49PM +0900, Young-Jun Hong wrote:
> The VPLL drives the G3D (Mali) clock on Exynos 5420/5422. Its rate table
> stops at 600 MHz, so GPU OPPs above 600 MHz cannot be reached:
> clk_set_rate() silently keeps fout_vpll at 600 MHz.
>
> Add the 650, 700 and 750 MHz rows (VCO 1300/1400/1500 MHz, using the same
> P/M/S style as the APLL rows).
What you mean with "using the same P/M/S style as the APLL rows"?
> Tested on Samsung ARTIK 10 (Exynos 5422): with these rows the G3D devfreq
> reaches 700 and 750 MHz, and the OpenCL accuracy suite passes 96/96 at
> 750 MHz with a board-specific 1.35 V OPP.
>
> The analysis, the code and this changelog were produced with Claude
> Code (Anthropic), a coding assistant.
Was it tested by a human?
> Signed-off-by: Young-Jun Hong <nirvanah@nirvanahyj.com>
> ---
> drivers/clk/samsung/clk-exynos5420.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
> index 400a5c59815c..1b4b0ae16765 100644
> --- a/drivers/clk/samsung/clk-exynos5420.c
> +++ b/drivers/clk/samsung/clk-exynos5420.c
> @@ -1451,6 +1451,9 @@ static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] = {
> };
>
> static const struct samsung_pll_rate_table exynos5420_vpll_24mhz_tbl[] = {
> + PLL_35XX_RATE(24 * MHZ, 750000000U, 125, 2, 1),
> + PLL_35XX_RATE(24 * MHZ, 700000000U, 175, 3, 1),
> + PLL_35XX_RATE(24 * MHZ, 650000000U, 325, 6, 1),
Do you have any references, like vendor kernel sources, to back up
these choices of dividers and scalar?
Best regards,
Henrik Grimler
> PLL_35XX_RATE(24 * MHZ, 600000000U, 200, 2, 2),
> PLL_35XX_RATE(24 * MHZ, 543000000U, 181, 2, 2),
> PLL_35XX_RATE(24 * MHZ, 480000000U, 160, 2, 2),
> --
> 2.47.3
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-06 14:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-06 5:41 [PATCH 0/4] Exynos 5422: Mali-T628 GPU compute fixes Young-Jun Hong
2026-11-06 5:41 ` [PATCH 2/4] clk: samsung: exynos5420: add VPLL rates for 650, 700 and 750 MHz Young-Jun Hong
2026-11-06 14:45 ` Henrik Grimler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox