On Thu, Sep 4, 2025 at 4:20 AM Nicolas Frattaroli <nicolas.frattar...@collabora.com> wrote: > > Hi, > > On Thursday, 4 September 2025 00:55:02 Central European Summer Time Chia-I Wu > wrote: > > MediaTek MT8196 has Mali-G925-Immortalis, for which panthor gained > > support recently. But the soc also requires custom ASN hash to be > > enabled. This series introduces panthor_soc_data for per-soc data and > > uses it to enable custom ASN hash on MT8196. > > > > The clk/regulator provider on MT8196 is GPUEB, whose driver[1] needs to > > be cleaned up and upstreamed separately. > > I'm currently working on this, I'm at a functional 800 LoC driver vs the > more than 30k LoC of the downstream... thing. I intend to send it in as > an RFC once the clock stuff lands, and I get some responses wrt to > figuring out what's still missing from linux-next aside from the DT to > get basic boot working so that I don't send in something that I > accidentally shredded during a rebase without noticing. > > Cleaning up the downstream driver is a fool's errand, it's like 6? > separate drivers, with lots of global state (and no locking), without > using the common clock framework, and relying on abusing -supply DT > properties to force a certain probe order to make all the race > conditions it would otherwise have turn out fine. A lot of it is > code that seems dead, or wrappers wrapping wrappers that have nothing > to do with how the hardware actually works. That's very true :)
> > My solution adds a small mailbox driver for the GPUEB, and also adds > a new module that lives in the panthor tree and registers itself with > panthor's devfreq stuff to be a "devfreq provider". The motivation > for making it devfreq instead of a clock+regulator provider is that > the GPUEB seems to have several quite devfreq-like parts to it that > I am not yet using, namely setting a job completion target time and > several methods of limiting performance. Yeah, gpueb can do dvfs autonomously which is more similar to how desktop gpus handle dvfs. We have yet to verify that on our devices. I also tend to trust devfreq more, but that might be partly because it is very hard to navigate through the downstream drivers. Look forward to seeing what you got! > > As it stands it can set the OPP, but boosting above 1.43 GHz does > not seem to stick. The boosting stuff may be done by the four or > five other ways it has to set some frequency target. > > I'm hoping I can send this in maybe next week or the week after. If > things remain blocked by then it'll be compile-tested in its current > form only and lack some clock stuff. > > Kind regards, > Nicolas Frattaroli > > > > > This initial support also lacks support for some hw configs. On some > > configs, panthor is expected to query a mask from efuse to mask out > > unavailable shader cores from ptdev->gpu_info.shader_present. This > > requires extending panthor_soc_data with a callback to read the mask. > > > > This is an RFC because the dependent drivers are not ready yet. But I > > would like to gather opinions on having panthor_soc_data for > > soc-specific data and having CONFIG_DRM_PANTHOR_SOC_MT8196 for > > soc-specific code. > > > > [1] > > https://gitlab.freedesktop.org/olv/kernel/-/commit/170d5fc90f817dc90bde54b32872c59cf5c77779 > > > > Chia-I Wu (2): > > dt-bindings: gpu: mali-valhall-csf: add MediaTek MT8196 compatible > > drm/panthor: add initial mt8196 support > > > > .../bindings/gpu/arm,mali-valhall-csf.yaml | 1 + > > drivers/gpu/drm/panthor/Kconfig | 6 +++++ > > drivers/gpu/drm/panthor/Makefile | 2 ++ > > drivers/gpu/drm/panthor/panthor_device.c | 2 ++ > > drivers/gpu/drm/panthor/panthor_device.h | 4 +++ > > drivers/gpu/drm/panthor/panthor_drv.c | 4 +++ > > drivers/gpu/drm/panthor/panthor_gpu.c | 26 ++++++++++++++++++- > > drivers/gpu/drm/panthor/panthor_regs.h | 4 +++ > > drivers/gpu/drm/panthor/panthor_soc.h | 26 +++++++++++++++++++ > > drivers/gpu/drm/panthor/panthor_soc_mt8196.c | 9 +++++++ > > 10 files changed, 83 insertions(+), 1 deletion(-) > > create mode 100644 drivers/gpu/drm/panthor/panthor_soc.h > > create mode 100644 drivers/gpu/drm/panthor/panthor_soc_mt8196.c > > > > > > > >