media: atomisp: Only set default_run_mode on first open of a stream/asd
authorHans de Goede <hdegoede@redhat.com>
Wed, 28 Dec 2022 22:11:47 +0000 (23:11 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Wed, 8 Feb 2023 06:55:56 +0000 (07:55 +0100)
Calling v4l2_ctrl_s_ctrl(asd->run_mode, pipe->default_run_mode) when
the stream is already active (through another /dev/video# node) causes
the stream to stop.

Move the call to set the default run-mode so that it is only done
on the first open of one of the 4 /dev/video# nodes of one of
the 2 streams (atomisp-sub-devices / asd-s).

Fixes: 2c45e343c581 ("media: atomisp: set per-device's default mode")
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_fops.c

index d953240..ccdd780 100644 (file)
@@ -821,13 +821,13 @@ init_subdev:
                goto done;
 
        atomisp_subdev_init_struct(asd);
+       /* Ensure that a mode is set */
+       v4l2_ctrl_s_ctrl(asd->run_mode, pipe->default_run_mode);
 
 done:
        pipe->users++;
        mutex_unlock(&isp->mutex);
 
-       /* Ensure that a mode is set */
-       v4l2_ctrl_s_ctrl(asd->run_mode, pipe->default_run_mode);
 
        return 0;