On Tue, 2023-03-14 at 10:45 +0100, AngeloGioacchino Del Regno wrote: > Il 14/03/23 08:25, Yunfei Dong ha scritto: > > Libyuv is one software library used to covert format. Only covert > > mediatek uncompressed mode MM21 to standard yuv420 for MT21 is > > compressed mode. Need to set capture queue format to MM21 in order > > to use Libyuv when scp firmware support MM21 and MT21. > > > > Fixes: 7501edef6b1f ("media: mediatek: vcodec: Different codec using different capture format") > > Signed-off-by: Yunfei Dong <yunfei.dong@xxxxxxxxxxxx> > > > After the firmware gets sent to linux-firmware *and ONLY after that*: > > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> The firmwares are sent to linux-firmware. https://lore.kernel.org/linux-firmware/a43524a089a783f70adbe89b83eeb01fbd405d04.camel@xxxxxxxxxxxx/T/#u > > > --- > > changed with v2: > > - re-write commit message. > > - change the driver flow. > > changed with v1: > > - add Fixes tag. > > --- > > .../platform/mediatek/vcodec/mtk_vcodec_dec.c | 24 +++---------------- > > 1 file changed, 3 insertions(+), 21 deletions(-) > > > > diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c > > index 641f533c417f..c99705681a03 100644 > > --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c > > +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c > > @@ -39,10 +39,9 @@ static bool mtk_vdec_get_cap_fmt(struct mtk_vcodec_ctx *ctx, int format_index) > > { > > const struct mtk_vcodec_dec_pdata *dec_pdata = ctx->dev->vdec_pdata; > > const struct mtk_video_fmt *fmt; > > - struct mtk_q_data *q_data; > > int num_frame_count = 0, i; > > - bool ret = true; > > > > + fmt = &dec_pdata->vdec_formats[format_index]; > > for (i = 0; i < *dec_pdata->num_formats; i++) { > > if (dec_pdata->vdec_formats[i].type != MTK_FMT_FRAME) > > continue; > > @@ -50,27 +49,10 @@ static bool mtk_vdec_get_cap_fmt(struct mtk_vcodec_ctx *ctx, int format_index) > > num_frame_count++; > > } > > > > - if (num_frame_count == 1) > > + if (num_frame_count == 1 || fmt->fourcc == V4L2_PIX_FMT_MM21) > > return true; > > > > - fmt = &dec_pdata->vdec_formats[format_index]; > > - q_data = &ctx->q_data[MTK_Q_DATA_SRC]; > > - switch (q_data->fmt->fourcc) { > > - case V4L2_PIX_FMT_VP8_FRAME: > > - if (fmt->fourcc == V4L2_PIX_FMT_MM21) > > - ret = true; > > - break; > > - case V4L2_PIX_FMT_H264_SLICE: > > - case V4L2_PIX_FMT_VP9_FRAME: > > - if (fmt->fourcc == V4L2_PIX_FMT_MM21) > > - ret = false; > > - break; > > - default: > > - ret = true; > > - break; > > - } > > - > > - return ret; > > + return false; > > } > > > > static struct mtk_q_data *mtk_vdec_get_q_data(struct mtk_vcodec_ctx *ctx, > > -- Best regards, TingHan