media: am437x-vpfe: Setting STD to current value is not an error
authorBenoit Parrot <bparrot@ti.com>
Fri, 20 Sep 2019 17:05:48 +0000 (14:05 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 31 Dec 2019 15:43:17 +0000 (16:43 +0100)
[ Upstream commit 13aa21cfe92ce9ebb51824029d89f19c33f81419 ]

VIDIOC_S_STD should not return an error if the value is identical
to the current one.
This error was highlighted by the v4l2-compliance test.

Signed-off-by: Benoit Parrot <bparrot@ti.com>
Acked-by: Lad Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/am437x/am437x-vpfe.c

index 2b42ba1..e13dbf2 100644 (file)
@@ -1830,6 +1830,10 @@ static int vpfe_s_std(struct file *file, void *priv, v4l2_std_id std_id)
        if (!(sdinfo->inputs[0].capabilities & V4L2_IN_CAP_STD))
                return -ENODATA;
 
+       /* if trying to set the same std then nothing to do */
+       if (vpfe_standards[vpfe->std_index].std_id == std_id)
+               return 0;
+
        /* If streaming is started, return error */
        if (vb2_is_busy(&vpfe->buffer_queue)) {
                vpfe_err(vpfe, "%s device busy\n", __func__);