summaryrefslogtreecommitdiff
path: root/patches.tizen/0735-Revert-m5mols-device-initialization-moved-to-V4L2-re.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches.tizen/0735-Revert-m5mols-device-initialization-moved-to-V4L2-re.patch')
-rw-r--r--patches.tizen/0735-Revert-m5mols-device-initialization-moved-to-V4L2-re.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/patches.tizen/0735-Revert-m5mols-device-initialization-moved-to-V4L2-re.patch b/patches.tizen/0735-Revert-m5mols-device-initialization-moved-to-V4L2-re.patch
new file mode 100644
index 00000000000..17782fabfaa
--- /dev/null
+++ b/patches.tizen/0735-Revert-m5mols-device-initialization-moved-to-V4L2-re.patch
@@ -0,0 +1,74 @@
+From aef6e26468a1c59ac0d3374b731196b2b2574384 Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Mon, 2 Sep 2013 16:33:02 +0200
+Subject: [PATCH 0735/1302] Revert "m5mols: device initialization moved to V4L2
+ registered callback"
+
+This reverts commit 30e7664276434227e448742b49738b47d03b6090.
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/media/i2c/m5mols/m5mols_core.c | 37 +++++++++++-----------------------
+ 1 file changed, 12 insertions(+), 25 deletions(-)
+
+diff --git a/drivers/media/i2c/m5mols/m5mols_core.c b/drivers/media/i2c/m5mols/m5mols_core.c
+index f720a41..a364781 100644
+--- a/drivers/media/i2c/m5mols/m5mols_core.c
++++ b/drivers/media/i2c/m5mols/m5mols_core.c
+@@ -927,31 +927,7 @@ static int m5mols_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
+ return 0;
+ }
+
+-static int m5mols_registered(struct v4l2_subdev *sd)
+-{
+- struct m5mols_info *info = to_m5mols(sd);
+- int ret;
+-
+- mutex_lock(&info->lock);
+-
+- ret = m5mols_sensor_power(info, true);
+- if (!ret)
+- ret = m5mols_fw_start(sd);
+- if (!ret)
+- ret = m5mols_init_controls(sd);
+-
+- m5mols_sensor_power(info, false);
+-
+- mutex_unlock(&info->lock);
+-
+- v4l2_dbg(1, m5mols_debug, sd, "%s: Booting %s (%d)\n",
+- __func__, ret ? "failed" : "succeded", ret);
+-
+- return ret;
+-}
+-
+ static const struct v4l2_subdev_internal_ops m5mols_subdev_internal_ops = {
+- .registered = m5mols_registered,
+ .open = m5mols_open,
+ };
+
+@@ -1039,8 +1015,19 @@ static int m5mols_probe(struct i2c_client *client,
+ info->ffmt[0] = m5mols_default_ffmt[0];
+ info->ffmt[1] = m5mols_default_ffmt[1];
+
+- return 0;
++ ret = m5mols_sensor_power(info, true);
++ if (ret)
++ goto out_irq;
+
++ ret = m5mols_fw_start(sd);
++ if (!ret)
++ ret = m5mols_init_controls(sd);
++
++ ret = m5mols_sensor_power(info, false);
++ if (!ret)
++ return 0;
++out_irq:
++ free_irq(client->irq, sd);
+ out_me:
+ media_entity_cleanup(&sd->entity);
+ out_reg:
+--
+1.8.3.2
+