diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2010-02-04 05:17:48 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-02-26 13:10:59 -0500 |
commit | 4a9ce75516982b0a349df55f326bc0cee572ffc1 (patch) | |
tree | 67bb91acfdbb4a482e66b7858177e465fa963a33 /drivers/media | |
parent | 917c50090ea3daa4c048b824a2dcb4730b3d7656 (diff) |
soc-camera: update mt9v022 to take into account board signal routing
Use soc_camera_apply_sensor_flags() in mt9v022 to account for any inverters in
video signal paths.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/mt9v022.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/media/video/mt9v022.c b/drivers/media/video/mt9v022.c index 91df7ec91fb6..1a34d2993e94 100644 --- a/drivers/media/video/mt9v022.c +++ b/drivers/media/video/mt9v022.c | |||
@@ -257,19 +257,18 @@ static int mt9v022_set_bus_param(struct soc_camera_device *icd, | |||
257 | static unsigned long mt9v022_query_bus_param(struct soc_camera_device *icd) | 257 | static unsigned long mt9v022_query_bus_param(struct soc_camera_device *icd) |
258 | { | 258 | { |
259 | struct soc_camera_link *icl = to_soc_camera_link(icd); | 259 | struct soc_camera_link *icl = to_soc_camera_link(icd); |
260 | unsigned int width_flag; | 260 | unsigned int flags = SOCAM_MASTER | SOCAM_SLAVE | |
261 | SOCAM_PCLK_SAMPLE_RISING | SOCAM_PCLK_SAMPLE_FALLING | | ||
262 | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_HSYNC_ACTIVE_LOW | | ||
263 | SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_LOW | | ||
264 | SOCAM_DATA_ACTIVE_HIGH; | ||
261 | 265 | ||
262 | if (icl->query_bus_param) | 266 | if (icl->query_bus_param) |
263 | width_flag = icl->query_bus_param(icl) & | 267 | flags |= icl->query_bus_param(icl) & SOCAM_DATAWIDTH_MASK; |
264 | SOCAM_DATAWIDTH_MASK; | ||
265 | else | 268 | else |
266 | width_flag = SOCAM_DATAWIDTH_10; | 269 | flags |= SOCAM_DATAWIDTH_10; |
267 | 270 | ||
268 | return SOCAM_PCLK_SAMPLE_RISING | SOCAM_PCLK_SAMPLE_FALLING | | 271 | return soc_camera_apply_sensor_flags(icl, flags); |
269 | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_HSYNC_ACTIVE_LOW | | ||
270 | SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_LOW | | ||
271 | SOCAM_DATA_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_SLAVE | | ||
272 | width_flag; | ||
273 | } | 272 | } |
274 | 273 | ||
275 | static int mt9v022_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) | 274 | static int mt9v022_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) |