summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/platform/rcar-vin/rcar-v4l2.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
index 5a01b617c87d..a84a07f1588c 100644
--- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
+++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
@@ -762,20 +762,6 @@ static int rvin_power_parallel(struct rvin_dev *vin, bool on)
return 0;
}
-static int rvin_initialize_device(struct file *file)
-{
- struct rvin_dev *vin = video_drvdata(file);
- int ret;
-
- ret = rvin_power_parallel(vin, true);
- if (ret < 0)
- return ret;
-
- v4l2_ctrl_handler_setup(&vin->ctrl_handler);
-
- return 0;
-}
-
static int rvin_open(struct file *file)
{
struct rvin_dev *vin = video_drvdata(file);
@@ -796,14 +782,20 @@ static int rvin_open(struct file *file)
goto err_unlock;
if (v4l2_fh_is_singular_file(file)) {
- ret = rvin_initialize_device(file);
- if (ret)
+ 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;
}
mutex_unlock(&vin->lock);
return 0;
+err_parallel:
+ rvin_power_parallel(vin, false);
err_open:
v4l2_fh_release(file);
err_unlock: