Commit 08a83828 authored by Yunfei Dong's avatar Yunfei Dong Committed by Mauro Carvalho Chehab

media: mediatek: vcodec: Fix v4l2 compliance decoder cmd test fail

Will return -EINVAL using standard framework api when test stateless
decoder with cmd VIDIOC_(TRY)DECODER_CMD. Disable them to adjust v4l2
compliance test for user driver(GStreamer/Chrome) won't use decoder cmd.

Fixes: 8cdc3794 ("media: mtk-vcodec: vdec: support stateless API")
Signed-off-by: default avatarYunfei Dong <yunfei.dong@mediatek.com>
Reviewed-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent f9222f8c
...@@ -47,14 +47,7 @@ static struct mtk_q_data *mtk_vdec_get_q_data(struct mtk_vcodec_ctx *ctx, ...@@ -47,14 +47,7 @@ static struct mtk_q_data *mtk_vdec_get_q_data(struct mtk_vcodec_ctx *ctx,
static int vidioc_try_decoder_cmd(struct file *file, void *priv, static int vidioc_try_decoder_cmd(struct file *file, void *priv,
struct v4l2_decoder_cmd *cmd) struct v4l2_decoder_cmd *cmd)
{ {
struct mtk_vcodec_ctx *ctx = fh_to_ctx(priv); return v4l2_m2m_ioctl_try_decoder_cmd(file, priv, cmd);
/* Use M2M stateless helper if relevant */
if (ctx->dev->vdec_pdata->uses_stateless_api)
return v4l2_m2m_ioctl_stateless_try_decoder_cmd(file, priv,
cmd);
else
return v4l2_m2m_ioctl_try_decoder_cmd(file, priv, cmd);
} }
...@@ -69,10 +62,6 @@ static int vidioc_decoder_cmd(struct file *file, void *priv, ...@@ -69,10 +62,6 @@ static int vidioc_decoder_cmd(struct file *file, void *priv,
if (ret) if (ret)
return ret; return ret;
/* Use M2M stateless helper if relevant */
if (ctx->dev->vdec_pdata->uses_stateless_api)
return v4l2_m2m_ioctl_stateless_decoder_cmd(file, priv, cmd);
mtk_v4l2_debug(1, "decoder cmd=%u", cmd->cmd); mtk_v4l2_debug(1, "decoder cmd=%u", cmd->cmd);
dst_vq = v4l2_m2m_get_vq(ctx->m2m_ctx, dst_vq = v4l2_m2m_get_vq(ctx->m2m_ctx,
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
......
...@@ -400,6 +400,9 @@ static int mtk_vcodec_probe(struct platform_device *pdev) ...@@ -400,6 +400,9 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
} }
if (dev->vdec_pdata->uses_stateless_api) { if (dev->vdec_pdata->uses_stateless_api) {
v4l2_disable_ioctl(vfd_dec, VIDIOC_DECODER_CMD);
v4l2_disable_ioctl(vfd_dec, VIDIOC_TRY_DECODER_CMD);
dev->mdev_dec.dev = &pdev->dev; dev->mdev_dec.dev = &pdev->dev;
strscpy(dev->mdev_dec.model, MTK_VCODEC_DEC_NAME, strscpy(dev->mdev_dec.model, MTK_VCODEC_DEC_NAME,
sizeof(dev->mdev_dec.model)); sizeof(dev->mdev_dec.model));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment