On Mi, 2022-03-09 at 11:33 -0300, Fabio Estevam wrote: > From: Nicolas Dufresne <nicolas.dufresne@xxxxxxxxxxxxx> > > This add H264 level 4.1, 4.2 and 5.0 to the list of supported > formats. > While the hardware does not fully support these levels, it do support > most of them. The constraints on frame size and pixel formats already > cover the limitation. > > This fixes negotiation of level on GStreamer 1.17.1. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 42a68012e67c2 ("media: coda: add read-only h.264 decoder > profile/level controls") > Signed-off-by: Nicolas Dufresne <nicolas.dufresne@xxxxxxxxxxxxx> > Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx> > Tested-by: Pascal Speck <kernel@xxxxxxxx> > Signed-off-by: Fabio Estevam <festevam@xxxxxxx> > --- > Changes since v1: > - None - only added Pascal's Tested-by tag. > > drivers/media/platform/coda/coda-common.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/platform/coda/coda-common.c > b/drivers/media/platform/coda/coda-common.c > index 53b2dd1b268c..f1234ad24f65 100644 > --- a/drivers/media/platform/coda/coda-common.c > +++ b/drivers/media/platform/coda/coda-common.c > @@ -2364,7 +2364,10 @@ static void coda_encode_ctrls(struct coda_ctx > *ctx) > (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | > (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | > (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | > - (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_0)), > + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | > + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | > + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_2) | > + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_5_0)), I still think this is wrong [1], the vendor only advertises support for level 4.0. At least level 5.0 must be dropped, as we don't support the frame size requirement. [1] https://lore.kernel.org/all/110980fea9c24ee449487b5d28822dccf7962494.camel@xxxxxxxxxxxxxx/#t > V4L2_MPEG_VIDEO_H264_LEVEL_4_0); > } > v4l2_ctrl_new_std(&ctx->ctrls, &coda_ctrl_ops, > @@ -2437,7 +2440,7 @@ static void coda_decode_ctrls(struct coda_ctx > *ctx) > ctx->dev->devtype->product == CODA_7541) > max = V4L2_MPEG_VIDEO_H264_LEVEL_4_0; > else if (ctx->dev->devtype->product == CODA_960) > - max = V4L2_MPEG_VIDEO_H264_LEVEL_4_1; > + max = V4L2_MPEG_VIDEO_H264_LEVEL_5_0; I'm not so sure about this one, but I think it is wrong as well, for the same reason. Nicolas wanted to reduce this to level 4.2 in v2 [2]. [2] https://lore.kernel.org/all/f409d4ddad0a352ca7ec84699c94a64e5dbf0407.camel@xxxxxxxxxxxxx/ regards Philipp