mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
20ea6adbf1
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>
47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
From f77451147a60ac62a6cdbd06b14e7b292fff80d6 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,
|