aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/soc_camera.c
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2011-03-23 04:41:28 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-04-13 08:54:16 -0400
commit24105ebc0567f2864999a8176be681c62fe31350 (patch)
tree077520b8ae7e37f7e22e34365f5e8a5caa8daf33 /drivers/media/video/soc_camera.c
parentc6c735441207b2ab54e45b0eb47671c508ee9847 (diff)
[media] soc-camera: fix a recent multi-camera breakage on sh-mobile
With the introduction of CSI2 support on sh-mobile, the host driver switched to using v4l2_device_call_until_err() with grp_id == 0 to call subdev operations on the sensor and the CSI2 subdev. However, this has broken multi-client set ups like the one on migor, because that way all operations get called on both clients. To fix this add a grp_id and set it to the client private context. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/soc_camera.c')
-rw-r--r--drivers/media/video/soc_camera.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c
index 46284489e4eb..921993060d2f 100644
--- a/drivers/media/video/soc_camera.c
+++ b/drivers/media/video/soc_camera.c
@@ -1071,6 +1071,9 @@ static int soc_camera_probe(struct device *dev)
1071 } 1071 }
1072 } 1072 }
1073 1073
1074 sd = soc_camera_to_subdev(icd);
1075 sd->grp_id = (long)icd;
1076
1074 /* At this point client .probe() should have run already */ 1077 /* At this point client .probe() should have run already */
1075 ret = soc_camera_init_user_formats(icd); 1078 ret = soc_camera_init_user_formats(icd);
1076 if (ret < 0) 1079 if (ret < 0)
@@ -1092,7 +1095,6 @@ static int soc_camera_probe(struct device *dev)
1092 goto evidstart; 1095 goto evidstart;
1093 1096
1094 /* Try to improve our guess of a reasonable window format */ 1097 /* Try to improve our guess of a reasonable window format */
1095 sd = soc_camera_to_subdev(icd);
1096 if (!v4l2_subdev_call(sd, video, g_mbus_fmt, &mf)) { 1098 if (!v4l2_subdev_call(sd, video, g_mbus_fmt, &mf)) {
1097 icd->user_width = mf.width; 1099 icd->user_width = mf.width;
1098 icd->user_height = mf.height; 1100 icd->user_height = mf.height;