diff options
| author | Teresa Gámez <t.gamez@phytec.de> | 2011-05-18 09:41:45 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-05-20 11:07:12 -0400 |
| commit | 4bc90dea7be181cd876500b1d766faaa77c3d493 (patch) | |
| tree | ad857a7057d33f673e645866f61eea97bacf6083 | |
| parent | a1de7a00ae6169973f188a2e6690e34d84613853 (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>
| -rw-r--r-- | drivers/media/video/mt9m111.c | 14 |
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, | |||
| 315 | static int mt9m111_setup_pixfmt(struct i2c_client *client, u16 outfmt) | 315 | static 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 | ||
