On Sun, 15 Feb 2026 13:02:51 +0300 Onur Özkan <[email protected]> wrote:
> 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. > > 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/ > Signed-off-by: Onur Özkan <[email protected]> > --- > 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")) { Rather than checking for specific compats here, let's go for a dont_need_sram_supply bool in panthor_soc_data. > + ret = devm_regulator_get_enable_optional(dev, "sram"); If we assume SRAM supply is mandatory, should this be devm_regulator_get_enable() instead? > + if (ret) { > DRM_DEV_ERROR(dev, "Couldn't retrieve/enable sram > supply\n"); > - return ret; > + return ret; > + } > } > > opp = devfreq_recommended_opp(dev, &cur_freq, 0);
