diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-16 23:40:32 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-17 15:11:22 +0200 |
commit | 20ea6adbf199097c4f5f591ffee088340630dae4 (patch) | |
tree | d6719d95e136611a1c25bbf7789652d6d402779d /target/linux/bcm27xx/patches-5.15/950-0645-media-i2c-ov9281-Increase-diff-between-VTS-and-max-e.patch | |
parent | bca05bd072180dc38ef740b37ded9572a6db1981 (diff) | |
download | upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.gz upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.bz2 upstream-20ea6adbf199097c4f5f591ffee088340630dae4.zip |
bcm27xx: add support for linux v5.15
Build system: x86_64
Build-tested: bcm2708, bcm2709, bcm2710, bcm2711
Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B
Signed-off-by: Marty Jones <mj8263788@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0645-media-i2c-ov9281-Increase-diff-between-VTS-and-max-e.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.15/950-0645-media-i2c-ov9281-Increase-diff-between-VTS-and-max-e.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0645-media-i2c-ov9281-Increase-diff-between-VTS-and-max-e.patch b/target/linux/bcm27xx/patches-5.15/950-0645-media-i2c-ov9281-Increase-diff-between-VTS-and-max-e.patch new file mode 100644 index 0000000000..cc4928f4ef --- /dev/null +++ b/target/linux/bcm27xx/patches-5.15/950-0645-media-i2c-ov9281-Increase-diff-between-VTS-and-max-e.patch @@ -0,0 +1,60 @@ +From 0f60668a144d9bb7e9f313c389d078fd9e3befe2 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.com> +Date: Tue, 4 Jan 2022 14:46:01 +0000 +Subject: [PATCH] media: i2c: ov9281: Increase diff between VTS and max + exposure + +The driver did allow the exposure to go up to VTS - 4 lines, +but this would produce a visible line on 1280x800, and a stall of +the sensor at 640x480. + +Whilst it appears to work with a difference of 5, the datasheet states +there should be at least 25 lines difference between VTS and exposure, +so use that value. + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> +--- + drivers/media/i2c/ov9281.c | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +--- a/drivers/media/i2c/ov9281.c ++++ b/drivers/media/i2c/ov9281.c +@@ -52,7 +52,11 @@ + #define OV9281_REG_EXPOSURE 0x3500 + #define OV9281_EXPOSURE_MIN 4 + #define OV9281_EXPOSURE_STEP 1 +-#define OV9281_VTS_MAX 0x7fff ++/* ++ * Number of lines less than frame length (VTS) that exposure must be. ++ * Datasheet states 25, although empirically 5 appears to work. ++ */ ++#define OV9281_EXPOSURE_OFFSET 25 + + #define OV9281_REG_GAIN_H 0x3508 + #define OV9281_REG_GAIN_L 0x3509 +@@ -69,6 +73,7 @@ + #define OV9281_TEST_PATTERN_DISABLE 0x0 + + #define OV9281_REG_VTS 0x380e ++#define OV9281_VTS_MAX 0x7fff + + /* + * OV9281 native and active pixel array size. +@@ -967,7 +972,7 @@ static int ov9281_set_ctrl(struct v4l2_c + switch (ctrl->id) { + case V4L2_CID_VBLANK: + /* Update max exposure while meeting expected vblanking */ +- max = ov9281->cur_mode->height + ctrl->val - 4; ++ max = ov9281->cur_mode->height + ctrl->val - OV9281_EXPOSURE_OFFSET; + __v4l2_ctrl_modify_range(ov9281->exposure, + ov9281->exposure->minimum, max, + ov9281->exposure->step, +@@ -1062,7 +1067,7 @@ static int ov9281_initialize_controls(st + OV9281_VTS_MAX - mode->height, 1, + vblank_def); + +- exposure_max = mode->vts_def - 4; ++ exposure_max = mode->vts_def - OV9281_EXPOSURE_OFFSET; + ov9281->exposure = v4l2_ctrl_new_std(handler, &ov9281_ctrl_ops, + V4L2_CID_EXPOSURE, + OV9281_EXPOSURE_MIN, exposure_max, |