[PATCH 4/6] media: imx335: Update HBLANK range on mode change

Jai Luthra posted 6 patches 4 months ago
There is a newer version of this series
[PATCH 4/6] media: imx335: Update HBLANK range on mode change
Posted by Jai Luthra 4 months ago
While switching modes, updating to a different value of HBLANK isn't
sufficient, as this is a read-only control with a single allowed value,
and thus hblank_min == hblank_max == hblank of the default mode.

So to correctly update the user-facing value of the HBLANK parameter,
which is necessary for correct framerate calculation, update the whole
range when switching modes.

Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
---
 drivers/media/i2c/imx335.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/i2c/imx335.c b/drivers/media/i2c/imx335.c
index dbf2db4bf9cbfd792ff5865264c6f465eb79a43b..c61a6952f828fd8b945746ae2f53f5517e98c410 100644
--- a/drivers/media/i2c/imx335.c
+++ b/drivers/media/i2c/imx335.c
@@ -485,7 +485,8 @@ static int imx335_update_controls(struct imx335 *imx335,
 	if (ret)
 		return ret;
 
-	ret = __v4l2_ctrl_s_ctrl(imx335->hblank_ctrl, mode->hblank);
+	ret = __v4l2_ctrl_modify_range(imx335->hblank_ctrl, mode->hblank,
+				       mode->hblank, 1, mode->hblank);
 	if (ret)
 		return ret;
 

-- 
2.50.1
Re: [PATCH 4/6] media: imx335: Update HBLANK range on mode change
Posted by Kieran Bingham 4 months ago
Quoting Jai Luthra (2025-08-13 08:20:35)
> While switching modes, updating to a different value of HBLANK isn't
> sufficient, as this is a read-only control with a single allowed value,
> and thus hblank_min == hblank_max == hblank of the default mode.
> 
> So to correctly update the user-facing value of the HBLANK parameter,
> which is necessary for correct framerate calculation, update the whole
> range when switching modes.
> 

Seems reasonable to me.


Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
> ---
>  drivers/media/i2c/imx335.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/i2c/imx335.c b/drivers/media/i2c/imx335.c
> index dbf2db4bf9cbfd792ff5865264c6f465eb79a43b..c61a6952f828fd8b945746ae2f53f5517e98c410 100644
> --- a/drivers/media/i2c/imx335.c
> +++ b/drivers/media/i2c/imx335.c
> @@ -485,7 +485,8 @@ static int imx335_update_controls(struct imx335 *imx335,
>         if (ret)
>                 return ret;
>  
> -       ret = __v4l2_ctrl_s_ctrl(imx335->hblank_ctrl, mode->hblank);
> +       ret = __v4l2_ctrl_modify_range(imx335->hblank_ctrl, mode->hblank,
> +                                      mode->hblank, 1, mode->hblank);
>         if (ret)
>                 return ret;
>  
> 
> -- 
> 2.50.1
>