在 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/[email protected]/ > [2] > https://gitlab.freedesktop.org/imagination/linux-firmware/-/tree/powervr > [3] https://github.com/SaschaWillems/Vulkan > [4] > https://lore.kernel.org/dri-devel/[email protected]/ > > 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
