Both the i.MX8MQ and i.MX8MM have G1 and G2 decoders. The two decoders are similar, but the imx8mm lacks the post-processor, so they will have distinct compatible flags. Splitting the i.MX8MQ VPU into G1 and G2 makes it easier to control them independently since the TRM of both the i.MX8MQ and i.MX8MM list them as distinct IP blocks. With them being split, the power-domain can shift to the vpu-blk-ctrl which is available on both i.MX8MQ and i.MX8MM but some of bits are different, so they'll have separate device tree bindings. Lastly, with the G1 and G2 operational, enable the i.MX8MM. On the i.MX8MM, the clock speed of 600MHz was chosen to match the default of the kernel repo from NXP and can be overwritten by board files for anyone who under/over volts the power rail. The repo used as the starting point was: git://linuxtv.org/hverkuil/media_tree.git for-v5.17e This media hantro group has been especially helpful in helping me get up to speed on how it works. Fluster was run on the i.MX8M Mini at 600 MHz: ./fluster.py run -d GStreamer-VP8-V4L2SL-Gst1.0 Ran 55/61 tests successfully in 8.299 secs ./fluster.py run -dGStreamer-H.264-V4L2SL-Gst1.0 Ran 90/135 tests successfully in 71.200 secs ./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0 Ran 139/303 tests successfully in 218.079 secs Adam Ford (7): dt-bindings: media: nxp,imx8mq-vpu: Support split G1 and G2 nodes with vpu-blk-ctrl media: hantro: Allow i.MX8MQ G1 and G2 to run independently arm64: dts: imx8mq: Enable both G1 and G2 VPU's with vpu-blk-ctrl arm64: dts: imx8mm: Fix VPU Hanging dt-bindings: media: nxp,imx8mq-vpu: Enable support for i.MX8M Mini media: hantro: Add support for i.MX8MM arm64: dts: imx8mm: Enable Hantro G1 and G2 video decoders Lucas Stach (3): dt-bindings: power: imx8mq: add defines for VPU blk-ctrl domains dt-bindings: soc: add binding for i.MX8MQ VPU blk-ctrl soc: imx: imx8m-blk-ctrl: add i.MX8MQ VPU blk-ctrl .../bindings/media/nxp,imx8mq-vpu.yaml | 85 ++++++++++++++----- .../soc/imx/fsl,imx8mq-vpu-blk-ctrl.yaml | 71 ++++++++++++++++ arch/arm64/boot/dts/freescale/imx8mm.dtsi | 29 ++++++- arch/arm64/boot/dts/freescale/imx8mq.dtsi | 69 +++++++++------ drivers/soc/imx/imx8m-blk-ctrl.c | 68 ++++++++++++++- drivers/staging/media/hantro/hantro_drv.c | 3 + drivers/staging/media/hantro/hantro_hw.h | 3 + drivers/staging/media/hantro/imx8m_vpu_hw.c | 84 +++++++++++++++--- include/dt-bindings/power/imx8mq-power.h | 3 + 9 files changed, 357 insertions(+), 58 deletions(-) create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mq-vpu-blk-ctrl.yaml base-commit: d1888b0bfd2ddef2e8a81505ffa200b92cc32e0c -- 2.32.0