[PATCH v2 0/5] powervr: MT8173 GPU support
Chen-Yu Tsai
wenst at chromium.org
Wed Mar 25 01:08:47 PDT 2026
On Wed, Mar 25, 2026 at 4:04 PM Icenowy Zheng <uwu at icenowy.me> wrote:
>
> 在 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` ?
I only did the basic `vulkaninfo` test this time around. To do anything
interesting probably requires the Mesa 26.1 release.
PVR_I_WANT_A_BROKEN_VULKAN_DRIVER=1 \
vkmark --winsys kms -D b81f54f8568deb0fb70a6a1ed845b65d
just reports "Error: Device specified by uuid is not available"
This is with Mesa 26.0.2 packages from Debian testing. At least now
have the powervr vulkan driver enabled by default, so I don't have
to rebuild the packages again.
ChenYu
> 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