[PATCH v2 0/5] powervr: MT8173 GPU support

Icenowy Zheng uwu at icenowy.me
Wed Mar 25 01:03:57 PDT 2026


在 2026-03-25三的 15:19 +0800,Chen-Yu Tsai写道:
> Hi everyone,
> 
> This is v2 of my MT8173 PowerVR GPU support series.
> 
> Changes since v1:
> - Adapted to changed DT bindings
> - Dropped driver change
> - Use same power domain for "a" and "b" GPU power domains
> 
> This update was requested by Icenowy.
> 
> 
> This series enables the PowerVR GPU found in the MT8173 SoC, found in
> some Chromebooks.
> 
> This version is different from the initial powervr driver submission
> [1]
> in that it splits out the GPU glue layer support out of the powervr
> driver and into a separate clock and power domain driver. The glue
> code
> is otherwise the same, and also the same as found in the ChromeOS
> kernels, with some extra comments and macro names added where
> possible.
> 
> Patch 1 adds a binding for the glue layer, called mfgtop. The glue
> layer
> contains clock and power controls for the GPU.
> 
> Patch 2 adds a driver for the glue layer.
> 
> Patch 3 adds an entry for the MT8173 GPU and 6XT series to the
> PowerVR
> binding.
> 
> Patch 4 adds an entry for the PowerVR 6XT series GPU to the driver.
> 
> Patch 5 corrects the clock for the GPU (called MFG) power domain.
> 
> Patch 6 adds device nodes for the GPU and glue layer to the MT8173
> dtsi
> file.
> 
> Patch 2 and 6 depend on patch 1 to build. I suppose some common
> immutable tree would be needed from the MediaTek maintainers.
> 
> The kernel driver successfully probes the hardware and loads the
> "rogue_4.40.2.51_v1.fw" firmware provided by Imagination Technologies
> [2].
> Userspace was tested with Mesa 24.0.8 from Debian Trixie rebuilt with
> the powervr vulkan driver enabled. `vulkaninfo` gives some
> information
> about the GPU (attached at the end), but running the `triangle`
> example
> from the Sascha Willems demos [3] with -DUSE_D2D_WSI=ON as
> recommended [4]
> failed with:
> 
>     Can't find a display and a display mode!

I think when using D2D the demos want width and height to be explicitly
specified, otherwise it seems to hardcode 1280x720.

If you're using an elm, could you try to add `-w 1920 -h 1080` or for
hana `-w 1366 -h 768` ?

Thanks
Icenowy

> 
> Same program worked correctly on a BeaglePlay and displayed a color
> gradient triangle. Not sure what went wrong here.
> 
> Anyway, please have a look and test.
> 
> 
> Thanks
> ChenYu
> 
> [1]
> https://lore.kernel.org/dri-devel/20220815165156.118212-2-sarah.walker@imgtec.com/
> [2]
> https://gitlab.freedesktop.org/imagination/linux-firmware/-/tree/powervr
> [3] https://github.com/SaschaWillems/Vulkan
> [4]
> https://lore.kernel.org/dri-devel/f2b2671e-5acc-4dec-9c2e-3c9cd2e1f19e@imgtec.com/
> 
> Chen-Yu Tsai (5):
>   dt-bindings: clock: mediatek: Add mt8173 mfgtop
>   clk: mediatek: Add mt8173-mfgtop driver
>   dt-bindings: gpu: powervr-rogue: Add MediaTek MT8173 GPU
>   arm64: dts: mediatek: mt8173: Fix MFG_ASYNC power domain clock
>   arm64: dts: mediatek: mt8173: Add GPU device nodes
> 
>  .../clock/mediatek,mt8173-mfgtop.yaml         |  70 +++++
>  .../bindings/gpu/img,powervr-rogue.yaml       |   1 +
>  arch/arm64/boot/dts/mediatek/mt8173.dtsi      |  33 ++-
>  drivers/clk/mediatek/Kconfig                  |   9 +
>  drivers/clk/mediatek/Makefile                 |   1 +
>  drivers/clk/mediatek/clk-mt8173-mfgtop.c      | 243
> ++++++++++++++++++
>  include/dt-bindings/clock/mt8173-clk.h        |   7 +
>  7 files changed, 363 insertions(+), 1 deletion(-)
>  create mode 100644
> Documentation/devicetree/bindings/clock/mediatek,mt8173-mfgtop.yaml
>  create mode 100644 drivers/clk/mediatek/clk-mt8173-mfgtop.c



More information about the Linux-mediatek mailing list