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 |
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 --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
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,