Tag all the coded formats where the s5p_mfc decoder supports dynamic
resolution switching.

Signed-off-by: Maxime Jourdan <mjour...@baylibre.com>
---
 drivers/media/platform/s5p-mfc/s5p_mfc_common.h |  1 +
 drivers/media/platform/s5p-mfc/s5p_mfc_dec.c    | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h 
b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
index 24148020baa9..59a279abb4a7 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
@@ -728,6 +728,7 @@ struct s5p_mfc_fmt {
        enum s5p_mfc_fmt_type type;
        u32 num_planes;
        u32 versions;
+       u32 flags;
 };
 
 /**
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c 
b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
index 51ab2e38a270..fd0bb04245a9 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
@@ -71,6 +71,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V5PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "H264/MVC Encoded Stream",
@@ -79,6 +80,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V6PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "H263 Encoded Stream",
@@ -87,6 +89,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V5PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "MPEG1 Encoded Stream",
@@ -95,6 +98,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V5PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "MPEG2 Encoded Stream",
@@ -103,6 +107,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V5PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "MPEG4 Encoded Stream",
@@ -111,6 +116,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V5PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "XviD Encoded Stream",
@@ -119,6 +125,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V5PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "VC1 Encoded Stream",
@@ -127,6 +134,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V5PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "VC1 RCV Encoded Stream",
@@ -135,6 +143,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V5PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .name           = "VP8 Encoded Stream",
@@ -143,6 +152,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V6PLUS_BITS,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .fourcc         = V4L2_PIX_FMT_HEVC,
@@ -150,6 +160,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V10_BIT,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
        {
                .fourcc         = V4L2_PIX_FMT_VP9,
@@ -157,6 +168,7 @@ static struct s5p_mfc_fmt formats[] = {
                .type           = MFC_FMT_DEC,
                .num_planes     = 1,
                .versions       = MFC_V10_BIT,
+               .flags          = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
 };
 
@@ -303,6 +315,7 @@ static int vidioc_enum_fmt(struct file *file, struct 
v4l2_fmtdesc *f,
        fmt = &formats[i];
        strscpy(f->description, fmt->name, sizeof(f->description));
        f->pixelformat = fmt->fourcc;
+       f->flags = fmt->flags;
        return 0;
 }
 
-- 
2.21.0

Reply via email to