]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/commitdiff
drivers: media: i2c: IMX274 existence check
authorBhanu Murthy V <bmurthyv@nvidia.com>
Wed, 20 Apr 2016 21:09:22 +0000 (14:09 -0700)
committerWenjia Zhou <wenjiaz@nvidia.com>
Wed, 27 Jul 2016 22:25:12 +0000 (15:25 -0700)
Verify IMX274 is connected during probe

Bug 200191959

Change-Id: I905d2ba161e65d3420d0437089f8ff4fa2dd1a58
Signed-off-by: Bhanu Murthy V <bmurthyv@nvidia.com>
Reviewed-on: http://git-master/r/1129869
(cherry picked from commit a8e44ad73fcec2080d6a6a946515131d3b428a90)
Reviewed-on: http://git-master/r/1147740
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Jihoon Bang <jbang@nvidia.com>
drivers/media/i2c/imx274.c

index f269bfba01427814f5ce0bdef32f84fd4d4eba64..7408ad002df1d1c4e2cd34e59af8d76a23a04e99 100644 (file)
@@ -845,6 +845,25 @@ static int imx274_read_otp_page(struct imx274 *priv,
        return 0;
 }
 
+static int imx274_verify_streaming(struct imx274 *priv)
+{
+       int err = 0;
+
+       err = camera_common_s_power(priv->subdev, true);
+       if (err)
+               return err;
+
+       err = imx274_s_stream(priv->subdev, true);
+       if (err)
+               goto error;
+
+error:
+       imx274_s_stream(priv->subdev, false);
+       camera_common_s_power(priv->subdev, false);
+
+       return err;
+}
+
 static int imx274_otp_setup(struct imx274 *priv)
 {
        int err;
@@ -1235,6 +1254,10 @@ static int imx274_probe(struct i2c_client *client,
        if (err)
                return err;
 
+       err = imx274_verify_streaming(priv);
+       if (err)
+               return err;
+
        /* eeprom interface */
        err = imx274_eeprom_device_init(priv);
        if (err)