[media] media: soc-camera: use icd->control instead of icd->pdev for reset()
authorJosh Wu <josh.wu@atmel.com>
Tue, 10 Feb 2015 09:31:33 +0000 (06:31 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 2 Apr 2015 21:34:10 +0000 (18:34 -0300)
icd->control is the sub device dev, i.e. i2c device.
icd->pdev is the soc camera device's device.

To be consitent with power() function, we will call reset() with
icd->control as well.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/platform/soc_camera/soc_camera.c

index 2049037..b26d4d4 100644 (file)
@@ -688,7 +688,8 @@ static int soc_camera_open(struct file *file)
 
                /* The camera could have been already on, try to reset */
                if (sdesc->subdev_desc.reset)
-                       sdesc->subdev_desc.reset(icd->pdev);
+                       if (icd->control)
+                               sdesc->subdev_desc.reset(icd->control);
 
                ret = soc_camera_add_device(icd);
                if (ret < 0) {
@@ -1159,7 +1160,8 @@ static void scan_add_host(struct soc_camera_host *ici)
 
                        /* The camera could have been already on, try to reset */
                        if (ssdd->reset)
-                               ssdd->reset(icd->pdev);
+                               if (icd->control)
+                                       ssdd->reset(icd->control);
 
                        icd->parent = ici->v4l2_dev.dev;
 
@@ -1445,7 +1447,7 @@ static int soc_camera_async_bound(struct v4l2_async_notifier *notifier,
                                memcpy(&sdesc->subdev_desc, ssdd,
                                       sizeof(sdesc->subdev_desc));
                                if (ssdd->reset)
-                                       ssdd->reset(icd->pdev);
+                                       ssdd->reset(&client->dev);
                        }
 
                        icd->control = &client->dev;