diff options
author | Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> | 2010-09-10 21:26:16 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-21 05:55:39 -0400 |
commit | 06e17821b5a689543a890861e5a08e1f9586e2bf (patch) | |
tree | 712506675759fbdefb68984762b1f4c2e0d4c70a /drivers/media/video/soc_camera.c | |
parent | 2f6e2404799ad610317157b73169c109788da0b0 (diff) |
[media] SoC Camera: add support for g_parm / s_parm operations
This patch adds support for g_parm / s_parm operations to the SoC Camera
framework. It is usefull for checking/setting camera frame rate.
Example usage can be found in the previous patch from this series,
"SoC Camera: add driver for OV6650 sensor".
Created and tested against linux-2.6.36-rc3 on Amstrad Delta.
Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
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.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c index 6876fdcbf8d7..c11a080b06ad 100644 --- a/drivers/media/video/soc_camera.c +++ b/drivers/media/video/soc_camera.c | |||
@@ -1146,6 +1146,20 @@ static int default_s_crop(struct soc_camera_device *icd, struct v4l2_crop *a) | |||
1146 | return v4l2_subdev_call(sd, video, s_crop, a); | 1146 | return v4l2_subdev_call(sd, video, s_crop, a); |
1147 | } | 1147 | } |
1148 | 1148 | ||
1149 | static int default_g_parm(struct soc_camera_device *icd, | ||
1150 | struct v4l2_streamparm *parm) | ||
1151 | { | ||
1152 | struct v4l2_subdev *sd = soc_camera_to_subdev(icd); | ||
1153 | return v4l2_subdev_call(sd, video, g_parm, parm); | ||
1154 | } | ||
1155 | |||
1156 | static int default_s_parm(struct soc_camera_device *icd, | ||
1157 | struct v4l2_streamparm *parm) | ||
1158 | { | ||
1159 | struct v4l2_subdev *sd = soc_camera_to_subdev(icd); | ||
1160 | return v4l2_subdev_call(sd, video, s_parm, parm); | ||
1161 | } | ||
1162 | |||
1149 | static void soc_camera_device_init(struct device *dev, void *pdata) | 1163 | static void soc_camera_device_init(struct device *dev, void *pdata) |
1150 | { | 1164 | { |
1151 | dev->platform_data = pdata; | 1165 | dev->platform_data = pdata; |
@@ -1177,6 +1191,10 @@ int soc_camera_host_register(struct soc_camera_host *ici) | |||
1177 | ici->ops->get_crop = default_g_crop; | 1191 | ici->ops->get_crop = default_g_crop; |
1178 | if (!ici->ops->cropcap) | 1192 | if (!ici->ops->cropcap) |
1179 | ici->ops->cropcap = default_cropcap; | 1193 | ici->ops->cropcap = default_cropcap; |
1194 | if (!ici->ops->set_parm) | ||
1195 | ici->ops->set_parm = default_s_parm; | ||
1196 | if (!ici->ops->get_parm) | ||
1197 | ici->ops->get_parm = default_g_parm; | ||
1180 | 1198 | ||
1181 | mutex_lock(&list_lock); | 1199 | mutex_lock(&list_lock); |
1182 | list_for_each_entry(ix, &hosts, list) { | 1200 | list_for_each_entry(ix, &hosts, list) { |