]> git.baikalelectronics.ru Git - kernel.git/commitdiff
media: mediatek: vcodec: Add format to support MT21C
authorYunfei Dong <yunfei.dong@mediatek.com>
Thu, 12 May 2022 02:19:42 +0000 (04:19 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 13 May 2022 12:45:38 +0000 (14:45 +0200)
Needs to use mediatek compressed mode for mt8192 decoder.

Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: NĂ­colas F. R. A. Prado <nfraprado@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c
drivers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h

index 5101322f4fe94adfd35699f5d7071db36bdae681..d5c69f94d28e705690b0c08be99f145794131856 100644 (file)
@@ -81,7 +81,7 @@ static const struct mtk_stateless_control mtk_stateless_controls[] = {
 
 #define NUM_CTRLS ARRAY_SIZE(mtk_stateless_controls)
 
-static struct mtk_video_fmt mtk_video_formats[2];
+static struct mtk_video_fmt mtk_video_formats[3];
 static struct mtk_codec_framesizes mtk_vdec_framesizes[1];
 
 static struct mtk_video_fmt default_out_format;
@@ -331,6 +331,7 @@ static void mtk_vcodec_add_formats(unsigned int fourcc,
                num_framesizes++;
                break;
        case V4L2_PIX_FMT_MM21:
+       case V4L2_PIX_FMT_MT21C:
                mtk_video_formats[count_formats].fourcc = fourcc;
                mtk_video_formats[count_formats].type = MTK_FMT_FRAME;
                mtk_video_formats[count_formats].num_planes = 2;
@@ -356,6 +357,10 @@ static void mtk_vcodec_get_supported_formats(struct mtk_vcodec_ctx *ctx)
                mtk_vcodec_add_formats(V4L2_PIX_FMT_MM21, ctx);
                cap_format_count++;
        }
+       if (ctx->dev->dec_capability & MTK_VDEC_FORMAT_MT21C) {
+               mtk_vcodec_add_formats(V4L2_PIX_FMT_MT21C, ctx);
+               cap_format_count++;
+       }
        if (ctx->dev->dec_capability & MTK_VDEC_FORMAT_H264_SLICE) {
                mtk_vcodec_add_formats(V4L2_PIX_FMT_H264_SLICE, ctx);
                out_format_count++;
index d74a9e0e74fea1a1b0c2c06bd090920f5401690d..75a1c6df65948d833af67c5bb5aee5542ac7723f 100644 (file)
@@ -350,6 +350,7 @@ enum mtk_vdec_hw_arch {
  */
 enum mtk_vdec_format_types {
        MTK_VDEC_FORMAT_MM21 = 0x20,
+       MTK_VDEC_FORMAT_MT21C = 0x40,
        MTK_VDEC_FORMAT_H264_SLICE = 0x100,
 };