diff mbox series

media: i2c: ov9282: Correct the exposure offset

Message ID 20241209-media-ov9282-fix-v1-1-d06bb7546f18@raspberrypi.com (mailing list archive)
State New
Headers show
Series media: i2c: ov9282: Correct the exposure offset | expand

Commit Message

Dave Stevenson Dec. 9, 2024, 2:55 p.m. UTC
The datasheet lists that "Maximum exposure time is frame
length -25 row periods, where frame length is set by
registers {0x380E, 0x380F}".
However this driver had OV9282_EXPOSURE_OFFSET set to 12
which allowed that restriction to be violated, and would
result in very under-exposed images.

Correct the offset.

Fixes: 14ea315bbeb7 ("media: i2c: Add ov9282 camera sensor driver")
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
This was picked up by one of our users noting that images were
going dark for captures through libcamera. libcamera was resetting
vblank and hblank to minimums for the capture, and that put us in
the situation where it broke the datasheet requirement for
exposure being at least 25 lines shorter than the frame length.
---
 drivers/media/i2c/ov9282.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
change-id: 20241209-media-ov9282-fix-a1ec012f5272

Best regards,

Comments

Kieran Bingham Dec. 9, 2024, 3:05 p.m. UTC | #1
Quoting Dave Stevenson (2024-12-09 14:55:45)
> The datasheet lists that "Maximum exposure time is frame
> length -25 row periods, where frame length is set by
> registers {0x380E, 0x380F}".
> However this driver had OV9282_EXPOSURE_OFFSET set to 12
> which allowed that restriction to be violated, and would
> result in very under-exposed images.
> 
> Correct the offset.
> 
> Fixes: 14ea315bbeb7 ("media: i2c: Add ov9282 camera sensor driver")
> Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
> ---
> This was picked up by one of our users noting that images were
> going dark for captures through libcamera. libcamera was resetting
> vblank and hblank to minimums for the capture, and that put us in
> the situation where it broke the datasheet requirement for
> exposure being at least 25 lines shorter than the frame length.
> ---
>  drivers/media/i2c/ov9282.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/i2c/ov9282.c b/drivers/media/i2c/ov9282.c
> index 9f52af6f047f..87e5d7ce5a47 100644
> --- a/drivers/media/i2c/ov9282.c
> +++ b/drivers/media/i2c/ov9282.c
> @@ -40,7 +40,7 @@
>  /* Exposure control */
>  #define OV9282_REG_EXPOSURE    0x3500
>  #define OV9282_EXPOSURE_MIN    1
> -#define OV9282_EXPOSURE_OFFSET 12
> +#define OV9282_EXPOSURE_OFFSET 25

As I've looked this up in the datasheet:

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

>  #define OV9282_EXPOSURE_STEP   1
>  #define OV9282_EXPOSURE_DEFAULT        0x0282
>  
> 
> ---
> base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
> change-id: 20241209-media-ov9282-fix-a1ec012f5272
> 
> Best regards,
> -- 
> Dave Stevenson <dave.stevenson@raspberrypi.com>
>
diff mbox series

Patch

diff --git a/drivers/media/i2c/ov9282.c b/drivers/media/i2c/ov9282.c
index 9f52af6f047f..87e5d7ce5a47 100644
--- a/drivers/media/i2c/ov9282.c
+++ b/drivers/media/i2c/ov9282.c
@@ -40,7 +40,7 @@ 
 /* Exposure control */
 #define OV9282_REG_EXPOSURE	0x3500
 #define OV9282_EXPOSURE_MIN	1
-#define OV9282_EXPOSURE_OFFSET	12
+#define OV9282_EXPOSURE_OFFSET	25
 #define OV9282_EXPOSURE_STEP	1
 #define OV9282_EXPOSURE_DEFAULT	0x0282