[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <08ccf52a-39bd-ed28-d9ca-3615c4a02c09@collabora.com>
Date: Tue, 14 Mar 2023 10:45:25 +0100
From: AngeloGioacchino Del Regno
<angelogioacchino.delregno@...labora.com>
To: Yunfei Dong <yunfei.dong@...iatek.com>,
Chen-Yu Tsai <wenst@...omium.org>,
Nicolas Dufresne <nicolas@...fresne.ca>,
Hans Verkuil <hverkuil-cisco@...all.nl>,
Benjamin Gaignard <benjamin.gaignard@...labora.com>,
NĂcolas F . R . A . Prado
<nfraprado@...labora.com>
Cc: Matthias Brugger <matthias.bgg@...il.com>,
Hsin-Yi Wang <hsinyi@...omium.org>,
Fritz Koenig <frkoenig@...omium.org>,
Daniel Vetter <daniel@...ll.ch>,
Steve Cho <stevecho@...omium.org>, linux-media@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org,
Project_Global_Chrome_Upstream_Group@...iatek.com
Subject: Re: [PATCH v3] media: mediatek: vcodec: Force capture queue format to
MM21
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@...iatek.com>
After the firmware gets sent to linux-firmware *and ONLY after that*:
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
> ---
> 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,
Powered by blists - more mailing lists