From: Dave Stevenson Date: Fri, 28 Oct 2022 16:08:52 +0000 (+0100) Subject: media: i2c: ov9282: Correct HTS register for configured pixel rate X-Git-Tag: v6.6.17~5419^2~313 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6b2a01c90e277d46f99321e4a1f50ee08c04abba;p=platform%2Fkernel%2Flinux-rpi.git media: i2c: ov9282: Correct HTS register for configured pixel rate The calculations from pixel rate, width+hblank, and height+vblank do not give the correct framerate - it's half the speed it should be. The datasheet lists the default for the TIMING_HTS registers (0x380c/d) as being 0x2d8 (728) which is less than the width of the image, so the units clearly can't be pixels. If TIMING_HTS is considered to be units of 2-pixels, then the resulting value of 0x5b0 (1456) makes all the calculations correct. This driver is reporting an HBLANK value of 250, with an image width of 1280, so TIMING_HTS is 1530 (0x5fa) pixels. However it was also setting the register to 0x5fa, thereby not taking into account it being units of 2-pixels. Correct the register value to 0x2fd so that all the timing calculations give the correct results. Signed-off-by: Dave Stevenson Reviewed-by: Jacopo Mondi Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/i2c/ov9282.c b/drivers/media/i2c/ov9282.c index 1524189..7e0b12b 100644 --- a/drivers/media/i2c/ov9282.c +++ b/drivers/media/i2c/ov9282.c @@ -236,8 +236,8 @@ static const struct ov9282_reg mode_1280x720_regs[] = { {0x3809, 0x00}, {0x380a, 0x02}, {0x380b, 0xd0}, - {0x380c, 0x05}, - {0x380d, 0xfa}, + {0x380c, 0x02}, + {0x380d, 0xfd}, {0x3810, 0x00}, {0x3811, 0x08}, {0x3812, 0x00},