+++ /dev/null
-From 8e9c9047f05e165d158b3718528fc8bcdaf856e8 Mon Sep 17 00:00:00 2001
-From: David Plowman <david.plowman@raspberrypi.com>
-Date: Thu, 18 Feb 2021 11:58:29 +0000
-Subject: [PATCH] media: i2c: imx290: Handle exposure correctly when
- vblank changes
-
-When vblank changes we must modify the exposure range. Also, with this
-sensor, the effective exposure time implicitly changes when vblank
-does, so we have to reset it after every vblank update.
-
-Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
----
- drivers/media/i2c/imx290.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
---- a/drivers/media/i2c/imx290.c
-+++ b/drivers/media/i2c/imx290.c
-@@ -618,6 +618,24 @@ static int imx290_set_vmax(struct imx290
- if (ret)
- dev_err(imx290->dev, "Unable to write vmax\n");
-
-+ /*
-+ * Changing vblank changes the allowed range for exposure.
-+ * We don't supply the current exposure as default here as it
-+ * may lie outside the new range. We will reset it just below.
-+ */
-+ __v4l2_ctrl_modify_range(imx290->exposure,
-+ IMX290_EXPOSURE_MIN,
-+ vmax - 2,
-+ IMX290_EXPOSURE_STEP,
-+ vmax - 2);
-+
-+ /*
-+ * Becuse of the way exposure works for this sensor, updating
-+ * vblank causes the effective exposure to change, so we must
-+ * set it back to the "new" correct value.
-+ */
-+ imx290_set_exposure(imx290, imx290->exposure->val);
-+
- return ret;
- }
-