47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
From f7ff6542ad9cdee4a1e67a0243f7dcc93cceb08a Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Tue, 7 Jul 2020 10:31:53 +0100
|
|
Subject: [PATCH] media: i2c: imx290: Explicitly set v&h blank on mode
|
|
change
|
|
|
|
__v4l2_ctrl_modify_range only updates the current value should
|
|
it be invalid within the new range. That can leave modes producing
|
|
odd frame rates.
|
|
|
|
Explicitly update the HBLANK and VBLANK values so that on mode
|
|
change we revert to the default frame rate for the mode.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
drivers/media/i2c/imx290.c | 10 ++++++++--
|
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/media/i2c/imx290.c
|
|
+++ b/drivers/media/i2c/imx290.c
|
|
@@ -796,17 +796,23 @@ static int imx290_set_fmt(struct v4l2_su
|
|
__v4l2_ctrl_s_ctrl_int64(imx290->pixel_rate,
|
|
imx290_calc_pixel_rate(imx290));
|
|
|
|
- if (imx290->hblank)
|
|
+ if (imx290->hblank) {
|
|
__v4l2_ctrl_modify_range(imx290->hblank,
|
|
imx290->hmax_min - mode->width,
|
|
IMX290_HMAX_MAX - mode->width,
|
|
1, mode->hmax - mode->width);
|
|
- if (imx290->vblank)
|
|
+ __v4l2_ctrl_s_ctrl(imx290->hblank,
|
|
+ mode->hmax - mode->width);
|
|
+ }
|
|
+ if (imx290->vblank) {
|
|
__v4l2_ctrl_modify_range(imx290->vblank,
|
|
mode->vmax - mode->height,
|
|
IMX290_VMAX_MAX - mode->height,
|
|
1,
|
|
mode->vmax - mode->height);
|
|
+ __v4l2_ctrl_s_ctrl(imx290->vblank,
|
|
+ mode->vmax - mode->height);
|
|
+ }
|
|
if (imx290->exposure)
|
|
__v4l2_ctrl_modify_range(imx290->exposure,
|
|
mode->vmax - mode->height,
|