media: rcar-vin: Always setup controls when opening video device
authorNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Thu, 4 Jul 2019 17:16:02 +0000 (13:16 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 25 Jul 2019 15:47:36 +0000 (11:47 -0400)
Now that both Gen2 (video device centric) and Gen3 (media device
centric) modes of the driver have controls it is required to always
setup the controls when opening the devices. Remove the check which only
calls v4l2_ctrl_handler_setup() for Gen2 and call it unconditionally.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/rcar-vin/rcar-v4l2.c

index 192390c..cfed0a2 100644 (file)
@@ -790,26 +790,26 @@ static int rvin_open(struct file *file)
        if (ret)
                goto err_unlock;
 
-       if (vin->info->use_mc) {
+       if (vin->info->use_mc)
                ret = v4l2_pipeline_pm_use(&vin->vdev.entity, 1);
-               if (ret < 0)
-                       goto err_open;
-       } else {
-               if (v4l2_fh_is_singular_file(file)) {
-                       ret = rvin_power_parallel(vin, true);
-                       if (ret < 0)
-                               goto err_open;
-
-                       ret = v4l2_ctrl_handler_setup(&vin->ctrl_handler);
-                       if (ret)
-                               goto err_parallel;
-               }
-       }
+       else if (v4l2_fh_is_singular_file(file))
+               ret = rvin_power_parallel(vin, true);
+
+       if (ret < 0)
+               goto err_open;
+
+       ret = v4l2_ctrl_handler_setup(&vin->ctrl_handler);
+       if (ret)
+               goto err_power;
+
        mutex_unlock(&vin->lock);
 
        return 0;
-err_parallel:
-       rvin_power_parallel(vin, false);
+err_power:
+       if (vin->info->use_mc)
+               v4l2_pipeline_pm_use(&vin->vdev.entity, 0);
+       else if (v4l2_fh_is_singular_file(file))
+               rvin_power_parallel(vin, false);
 err_open:
        v4l2_fh_release(file);
 err_unlock: