media: hantro: Add support for i.MX8MM Hantro-G1
authorAdam Ford <aford173@gmail.com>
Tue, 25 Jan 2022 17:11:27 +0000 (18:11 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 7 Mar 2022 09:57:00 +0000 (10:57 +0100)
The i.MX8MM has a Hantro G1 video decoder similar to the
imx8mq but lacks the post-processor present in the imx8mq.
Add support in the driver for it with the post-processing
removed.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/hantro/hantro_drv.c
drivers/staging/media/hantro/hantro_hw.h
drivers/staging/media/hantro/imx8m_vpu_hw.c

index 5a76bedde3b0b7ac2fa0527d16bc50d61563d4d7..dc768884cb79ade270514f0882d53085224a3ede 100644 (file)
@@ -630,6 +630,7 @@ static const struct of_device_id of_hantro_match[] = {
        { .compatible = "rockchip,rk3399-vpu", .data = &rk3399_vpu_variant, },
 #endif
 #ifdef CONFIG_VIDEO_HANTRO_IMX8M
+       { .compatible = "nxp,imx8mm-vpu-g1", .data = &imx8mm_vpu_g1_variant, },
        { .compatible = "nxp,imx8mq-vpu", .data = &imx8mq_vpu_variant, },
        { .compatible = "nxp,imx8mq-vpu-g1", .data = &imx8mq_vpu_g1_variant },
        { .compatible = "nxp,imx8mq-vpu-g2", .data = &imx8mq_vpu_g2_variant },
index 2bd094bbfc8241d573f10852928172ba9598b658..ed018e293ba07d29b049ab3eef4de5efd5d0fb34 100644 (file)
@@ -290,6 +290,7 @@ enum hantro_enc_fmt {
        ROCKCHIP_VPU_ENC_FMT_UYVY422 = 3,
 };
 
+extern const struct hantro_variant imx8mm_vpu_g1_variant;
 extern const struct hantro_variant imx8mq_vpu_g1_variant;
 extern const struct hantro_variant imx8mq_vpu_g2_variant;
 extern const struct hantro_variant imx8mq_vpu_variant;
index 849ea7122d47486306fa560bc70d4668f9d9e079..9802508bade2779bb55e5661242c29e3f2599c9c 100644 (file)
@@ -327,3 +327,15 @@ const struct hantro_variant imx8mq_vpu_g2_variant = {
        .clk_names = imx8mq_g2_clk_names,
        .num_clocks = ARRAY_SIZE(imx8mq_g2_clk_names),
 };
+
+const struct hantro_variant imx8mm_vpu_g1_variant = {
+       .dec_fmts = imx8m_vpu_dec_fmts,
+       .num_dec_fmts = ARRAY_SIZE(imx8m_vpu_dec_fmts),
+       .codec = HANTRO_MPEG2_DECODER | HANTRO_VP8_DECODER |
+                HANTRO_H264_DECODER,
+       .codec_ops = imx8mq_vpu_g1_codec_ops,
+       .irqs = imx8mq_irqs,
+       .num_irqs = ARRAY_SIZE(imx8mq_irqs),
+       .clk_names = imx8mq_g1_clk_names,
+       .num_clocks = ARRAY_SIZE(imx8mq_g1_clk_names),
+};