lkml.org 
[lkml]   [2023]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v3] media: mediatek: vcodec: Force capture queue format to MM21
From
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@mediatek.com>


After the firmware gets sent to linux-firmware *and ONLY after that*:

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.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,


\
 
 \ /
  Last update: 2023-03-27 00:59    [W:0.067 / U:0.768 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site