[PATCH V2 00/10] media: hantro: imx8mq/imx8mm: Let VPU decoders get controlled by vpu-blk-ctrl

Benjamin Gaignard benjamin.gaignard at collabora.com
Thu Dec 16 06:58:40 PST 2021


Le 16/12/2021 à 12:12, Adam Ford a écrit :
> 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.
>
>  From what I can tell, the G2 decoder wasn't working, so 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. This also allowed G2 to
> become available.
>
> 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 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.
>
> There seems to be some disagreement between the TRM and the Datasheet
> for the imx8mq as to whether the speed should be 300MHz (TRM) or
> 600MHz (datasheet), so feedback from NXP would be very much
> appreciated.
>
> The repo used as the starting point was:
> git://linuxtv.org/hverkuil/media_tree.git for-v5.17e
>
> Fluster was run on both i.MX8MM and i.MX8MQ
>
> At 600 MHz, the i.MX8MM had the following:
>
> ./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
>
> The i.MX8MQ had the following:
>
> ./fluster.py run -d GStreamer-VP8-V4L2SL-Gst1.0
> Ran 55/61 tests successfully               in 7.732 secs
>
> ./fluster.py run -dGStreamer-H.264-V4L2SL-Gst1.0
> Ran 90/135 tests successfully               in 58.558 secs
>
> ./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0
> Ran 144/303 tests successfully               in 271.373 secs

I have tested this series on top of media_stage/master branch
with IMX6MQ:

./fluster.py run -d GStreamer-VP8-V4L2SL-Gst1.0
Ran 57/61 tests successfully               in 32.725 secs

./fluster.py run -d GStreamer-H.264-V4L2SL-Gst1.0
Ran 89/135 tests successfully               in 131.632 secs

./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0
Ran 146/303 tests successfully               in 304.345 secs

./fluster.py run -d GStreamer-H.265-V4L2SL-Gst1.0 -j 1
Ran 77/147 tests successfully               in 1047.211 secs

For this series:

Tested-by: Benjamin Gaignard <benjamin.gaignard at collabora.com>

Thanks to fix this problem.
Benjamin

>
> V2:  Remove references to legacy dt-binding from YAML, but keep
>       it in the driver so older device trees can still be used.
>       Fix typos in YAML
>       Remove reg-names, interrupt-names, and clock-names from YAML,
>       since each node will only have one of each, they're not necessary
>       Add Fluster scores to cover letter for i.MX8MQ
>
> Adam Ford (7):
>    dt-bindings: media: nxp,imx8mq-vpu: Split G1 and G2 nodes
>    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: Add support for G1 and G2 on
>      imx8mm
>    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        | 93 +++++++++++--------
>   .../soc/imx/fsl,imx8mq-vpu-blk-ctrl.yaml      | 71 ++++++++++++++
>   arch/arm64/boot/dts/freescale/imx8mm.dtsi     | 23 ++++-
>   arch/arm64/boot/dts/freescale/imx8mq.dtsi     | 63 ++++++++-----
>   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   | 75 ++++++++++++---
>   include/dt-bindings/power/imx8mq-power.h      |  3 +
>   9 files changed, 324 insertions(+), 78 deletions(-)
>   create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mq-vpu-blk-ctrl.yaml
>
>
> base-commit: d1888b0bfd2ddef2e8a81505ffa200b92cc32e0c



More information about the linux-arm-kernel mailing list