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

Icenowy Zheng uwu at icenowy.me
Thu Mar 26 02:55:33 PDT 2026


在 2026-03-26四的 13:56 +0800,Icenowy Zheng写道:
> 在 2026-03-25三的 17:11 +0800,Icenowy Zheng写道:
> > 在 2026-03-25三的 16:30 +0800,Icenowy Zheng写道:
> > > 在 2026-03-25三的 16:08 +0800,Chen-Yu Tsai写道:
> > > > 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"
> > > 
> > > I am very sorry to tell you that, when I run Sascha's demo with
> > > Mesa
> > > main, I got GPU lost immediately...
> > > 
> > > ```
> > > [  441.509433] powervr 13000000.gpu: [drm] *ERROR* GPU device
> > > lost
> > > ```
> 
> The device lost message seems to be some bug of the open source KMD
> or
> the firmware.
> 
> When I disable runtime power management of the 13000000.gpu device,
> this message does not appear, instead the following message appears
> and
> the GPU can continue to accept jobs:
> 
> ```
> powervr 13000000.gpu: [drm] Received unknown FWCCB command 2abc0070
> ```

Both the device lost behavior and this message are suspicious, but at
least they shouldn't be this patchset's fault.

So, for patches 2, 4, 5 in this patchset:

`Tested-by: Icenowy Zheng <zhengxingda at iscas.ac.cn>`

(DT binding maintainers suggest not to give binding patches t-b tags)

> 
> > 
> > However, Zink on PowerVR works, and on Lichee Pi 4A I also got
> > `VK_ERROR_DEVICE_LOST` when running Sascha's demos (although the
> > kernel
> > does not report device lost).
> > 
> > I bet it's a regression on the VK_KHR_display code.
> 
> I'm now sure that it's a regression, it's now tracked at [1].

It's now getting fixed (Mesa MR !40640, already being processed by
Marge Bot).

Thanks,
Icenowy

> 
> [1] https://gitlab.freedesktop.org/mesa/mesa/-/issues/15161
> 
> > 
> > Thanks,
> > Icenowy
> > 
> > > 
> > > Icenowy
> > > 
> > > > 
> > > > 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