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

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
Loading
Loading
Loading
Loading
+1 −12
Original line number Diff line number Diff line
@@ -47,13 +47,6 @@ 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,
				struct v4l2_decoder_cmd *cmd)
{
	struct mtk_vcodec_ctx *ctx = fh_to_ctx(priv);

	/* 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,
	if (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);
	dst_vq = v4l2_m2m_get_vq(ctx->m2m_ctx,
				V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
+3 −0
Original line number Diff line number Diff line
@@ -400,6 +400,9 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
	}

	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;
		strscpy(dev->mdev_dec.model, MTK_VCODEC_DEC_NAME,
			sizeof(dev->mdev_dec.model));