aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/mt9m111.c
diff options
context:
space:
mode:
authorTeresa Gámez <t.gamez@phytec.de>2011-05-18 09:41:45 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-05-20 11:07:12 -0400
commit4bc90dea7be181cd876500b1d766faaa77c3d493 (patch)
treead857a7057d33f673e645866f61eea97bacf6083 /drivers/media/video/mt9m111.c
parenta1de7a00ae6169973f188a2e6690e34d84613853 (diff)
[media] V4L: mt9m111: fix pixel clock
This camera driver supports only rising edge, which is the default setting of the device. The function mt9m111_setup_pixfmt() overwrites this setting. So the driver actually uses falling edge. This patch corrects that. Signed-off-by: Teresa Gámez <t.gamez@phytec.de> [g.liakhovetski@gmx.de: removed superfluous register write] Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Tested-by: Teresa Gámez <t.gamez@phytec.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/mt9m111.c')
-rw-r--r--drivers/media/video/mt9m111.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/media/video/mt9m111.c b/drivers/media/video/mt9m111.c
index 53fa2a7bf156..ebebed929627 100644
--- a/drivers/media/video/mt9m111.c
+++ b/drivers/media/video/mt9m111.c
@@ -315,10 +315,20 @@ static int mt9m111_setup_rect(struct i2c_client *client,
315static int mt9m111_setup_pixfmt(struct i2c_client *client, u16 outfmt) 315static int mt9m111_setup_pixfmt(struct i2c_client *client, u16 outfmt)
316{ 316{
317 int ret; 317 int ret;
318 u16 mask = MT9M111_OUTFMT_PROCESSED_BAYER | MT9M111_OUTFMT_RGB |
319 MT9M111_OUTFMT_BYPASS_IFP | MT9M111_OUTFMT_SWAP_RGB_EVEN |
320 MT9M111_OUTFMT_RGB565 | MT9M111_OUTFMT_RGB555 |
321 MT9M111_OUTFMT_SWAP_YCbCr_Cb_Cr |
322 MT9M111_OUTFMT_SWAP_YCbCr_C_Y;
318 323
319 ret = reg_write(OUTPUT_FORMAT_CTRL2_A, outfmt); 324 ret = reg_read(OUTPUT_FORMAT_CTRL2_A);
325 if (ret >= 0)
326 ret = reg_write(OUTPUT_FORMAT_CTRL2_A, (ret & ~mask) | outfmt);
320 if (!ret) 327 if (!ret)
321 ret = reg_write(OUTPUT_FORMAT_CTRL2_B, outfmt); 328 ret = reg_read(OUTPUT_FORMAT_CTRL2_B);
329 if (ret >= 0)
330 ret = reg_write(OUTPUT_FORMAT_CTRL2_B, (ret & ~mask) | outfmt);
331
322 return ret; 332 return ret;
323} 333}
324 334