Re: [PATCH v2 1/3] ov2640: select sensor register bank before applying h/v-flip settings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Frank

On Sun, 23 Sep 2012, Frank Schäfer wrote:

> We currently don't select the register bank in ov2640_s_ctrl, so we can end up
> writing to DSP register 0x04 instead of sensor register 0x04.
> This happens for example when calling ov2640_s_ctrl after ov2640_s_fmt.

Yes, in principle, I agree, bank switching in the driver is not very... 
consistent and also this specific case looks buggy. But, we have to fix 
your fix.

> 
> Signed-off-by: Frank Schäfer <fschaefer.oss@xxxxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxx
> ---
>  drivers/media/i2c/soc_camera/ov2640.c |    8 ++++++++
>  1 Datei geändert, 8 Zeilen hinzugefügt(+)
> 
> diff --git a/drivers/media/i2c/soc_camera/ov2640.c b/drivers/media/i2c/soc_camera/ov2640.c
> index 78ac574..e4fc79e 100644
> --- a/drivers/media/i2c/soc_camera/ov2640.c
> +++ b/drivers/media/i2c/soc_camera/ov2640.c
> @@ -683,8 +683,16 @@ static int ov2640_s_ctrl(struct v4l2_ctrl *ctrl)
>  	struct v4l2_subdev *sd =
>  		&container_of(ctrl->handler, struct ov2640_priv, hdl)->subdev;
>  	struct i2c_client  *client = v4l2_get_subdevdata(sd);
> +	struct regval_list regval;
> +	int ret;
>  	u8 val;
>  
> +	regval.reg_num = BANK_SEL;
> +	regval.value = BANK_SEL_SENS;
> +	ret = ov2640_write_array(client, &regval);

This doesn't look right to me. ov2640_write_array() keeps writing register 
address - value pairs to the hardware until it encounters an "ENDMARKER," 
which you don't have here, so, it's hard to say what will be written to 
the sensor... Secondly, you only have to write a single register here, for 
this the driver is already using i2c_smbus_write_byte_data() directly, 
please, do the same.

Thanks
Guennadi

> +	if (ret < 0)
> +		return ret;
> +
>  	switch (ctrl->id) {
>  	case V4L2_CID_VFLIP:
>  		val = ctrl->val ? REG04_VFLIP_IMG : 0x00;
> -- 
> 1.7.10.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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux