Thread (15 messages) 15 messages, 9 authors, 2026-02-24

Re: [PATCH v1 2/2] drm/panthor: treat sram as mandatory except mt8196

From: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Date: 2026-02-16 13:07:39
Also in: dri-devel, linux-mediatek, lkml

On Monday, 16 February 2026 12:44:39 Central European Standard Time AngeloGioacchino Del Regno wrote:
Il 16/02/26 10:44, Boris Brezillon ha scritto:
quoted
Hello Adam,

On Sun, 15 Feb 2026 16:21:34 -0600
Adam Ford [off-list ref] wrote:
quoted
On Sun, Feb 15, 2026 at 4:04 AM Onur Özkan [off-list ref] wrote:
quoted
If sram-supply is missing, Panthor falls back to a
dummy regulator with a warning. This implicit behavior
hides missing DT wiring behind regulator core fallback.
This is intentional design of the regulator API. A missing supply will
always result in a dummy regulator. The _optional function bubbles the
missing supply condition up to the caller.

Catching device trees lacking supplies that are marked as required by
the binding is done with dtbs_check, not at runtime.
quoted
quoted
quoted
Make SRAM handling explicit: require sram-supply for all
Panthor compatibles except mt8196-mali where GPU supplies
are intentionally managed outside Panthor and DT does not
model sram-supply for that compatible.

This keeps DT power modeling explicit and avoids relying on
dummy-regulator fallback.

Link: https://lore.kernel.org/all/20260213155937.6af75786@nimda/ (local)
Signed-off-by: Onur Özkan <work@onurozkan.dev>
---
  drivers/gpu/drm/panthor/panthor_devfreq.c | 13 +++++++++----
  1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/panthor/panthor_devfreq.c b/drivers/gpu/drm/panthor/panthor_devfreq.c
index 2249b41ca4af..5f6075f18fe3 100644
--- a/drivers/gpu/drm/panthor/panthor_devfreq.c
+++ b/drivers/gpu/drm/panthor/panthor_devfreq.c
@@ -206,12 +206,17 @@ int panthor_devfreq_init(struct panthor_device *ptdev)
          * But without knowing if it's beneficial or not (in term of power
          * consumption), or how much it slows down the suspend/resume steps,
          * let's just keep regulators enabled for the device lifetime.
+        *
+        * Treat sram-supply as mandatory except for mt8196-mali. It manages
+        * SRAM outside Panthor so this driver must not require direct control
+        * over it.
          */
-       ret = devm_regulator_get_enable_optional(dev, "sram");
-       if (ret && ret != -ENODEV) {
-               if (ret != -EPROBE_DEFER)
+       if (!of_device_is_compatible(dev->of_node, "mediatek,mt8196-mali")) {
If you really need a per-SoC branch then please just store it in the
platform data so we don't have these "of_device_is_compatible" checks
littered throughout the driver.
quoted
quoted
I wonder if a more generic device tree flag would be better here.
No, we don't want it as a separate DT flag. This is all stuff we can
hide behind the compat, and every bit we add to the DT we don't
strictly need turns out to be a liability in the long run in general.
quoted
What happens if others do the same as Mediatek or Mediatek decides to
do this with more processors and this list grows?
That's what panthor_soc_data is for: you can attach per-compat
properties without polluting the DT with more stuff that can be
directly inferred from the compatible.
quoted
It seems like a
panthor binding might be useful to prevent future bloat.
It's actually the opposite, the more we add to the DT, the trickier it
gets to maintain, because we tend to get those things wrong (is the
SRAM really not needed on mt8196, or is this just a workaround to hide
the fact the PM is deferred to some FW?).
MT8196 has three supplies: core, stack, sram.

For example, the Google Rauru Chromebooks use those:

        core-supply = <&mt6373_vbuck7>;
        stack-supply = <&mt6316dp_vbuck0>;
        sram-supply = <&mt6316kp_vbuck1>;

As of now (in our midstream trees), these supplies are declared in the gpufreq
node (the performance domain controller), and required to be on whenever GPUEB
interaction is needed, other than whenever the GPU itself is, well, needed to
be powered.

As of the current model, these supplies are getting powered on and off along
with the MFG power domain.

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c#n1005

I'm not sure what happens if we also add those to the GPU node... for this, I'm
adding Nicolas to the Ccs, as he is the one who developed support for EB.
Fairly sure they need to be on as part of any of the operations the MFG stuff
does, but I also am not 100% sure on this because I didn't take notes at the
time.

Either way, this patch shouldn't exist, it doesn't do anything useful, as a
missing supply from the DT can be caught with `make dtbs_check`. It does not
need to be booted on each device to then have the driver abort probe at runtime.
Cheers,
Angelo
quoted
Regards,

Boris



Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help