diff mbox

mt9v022: fix pixel clock

Message ID 1302791997-12679-1-git-send-email-t.gamez@phytec.de (mailing list archive)
State RFC
Headers show

Commit Message

Teresa Gámez April 14, 2011, 2:39 p.m. UTC
The setup of the pixel clock is done wrong in the mt9v022 driver.
The 'Invert Pixel Clock' bit has to be set to 1 for falling edge
and not for rising. This is not clearly described in the data
sheet.

Tested on pcm037 and pcm027/pcm990.

Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
---
 drivers/media/video/mt9v022.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Guennadi Liakhovetski May 4, 2011, 8:17 a.m. UTC | #1
Hi Teresa

I'm adding Mauro to CC, because we were discussing adding these (this one 
and mt9m111) patches to .39.

On Thu, 14 Apr 2011, Teresa Gámez wrote:

> The setup of the pixel clock is done wrong in the mt9v022 driver.
> The 'Invert Pixel Clock' bit has to be set to 1 for falling edge
> and not for rising. This is not clearly described in the data
> sheet.

I finally got round to test your patch on pcm037. But sorry, I cannot 
reproduce your success. What's even worth, your patch, if applied to the 
stock kernel, really messes up Bayer colours for me. With your patch alone 
I cannot select the Bayer filter starting pixel parameter to produce 
correct colours. Without your patch colours do not look very clean, that's 
true, but I always attributed it to some sensor fine-tuning issues. But at 
least they are correct. An easy way to test colours is to point the camera 
at the LED pair on the board - blinking red and constant green next to the 
ethernet port. You once mentioned, that in your BSP you have the 
SOCAM_SENSOR_INVERT_PCLK flag set in your platform data. Maybe you were 
testing with that one? Then yes, of course, you'd have to compensate it by 
inverting the bit in the sensor. In any case, your patch if applied alone, 
seems to break camera on pcm037. Am I missing something?

Thanks
Guennadi

> 
> Tested on pcm037 and pcm027/pcm990.
> 
> Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
> ---
>  drivers/media/video/mt9v022.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/media/video/mt9v022.c b/drivers/media/video/mt9v022.c
> index 6a784c8..dec2a69 100644
> --- a/drivers/media/video/mt9v022.c
> +++ b/drivers/media/video/mt9v022.c
> @@ -228,7 +228,7 @@ static int mt9v022_set_bus_param(struct soc_camera_device *icd,
>  
>  	flags = soc_camera_apply_sensor_flags(icl, flags);
>  
> -	if (flags & SOCAM_PCLK_SAMPLE_RISING)
> +	if (flags & SOCAM_PCLK_SAMPLE_FALLING)
>  		pixclk |= 0x10;
>  
>  	if (!(flags & SOCAM_HSYNC_ACTIVE_HIGH))
> -- 
> 1.7.0.4
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/media/video/mt9v022.c b/drivers/media/video/mt9v022.c
index 6a784c8..dec2a69 100644
--- a/drivers/media/video/mt9v022.c
+++ b/drivers/media/video/mt9v022.c
@@ -228,7 +228,7 @@  static int mt9v022_set_bus_param(struct soc_camera_device *icd,
 
 	flags = soc_camera_apply_sensor_flags(icl, flags);
 
-	if (flags & SOCAM_PCLK_SAMPLE_RISING)
+	if (flags & SOCAM_PCLK_SAMPLE_FALLING)
 		pixclk |= 0x10;
 
 	if (!(flags & SOCAM_HSYNC_ACTIVE_HIGH))