Re: [PATCH 11/13] media: i2c: os05b10: Update active format before adjusting framing controls

From: sakari.ailus@xxxxxxxxxxxxxxx

Date: Wed Mar 25 2026 - 04:56:40 EST


Hi Tarang,

On Tue, Mar 24, 2026 at 04:31:02PM +0000, Tarang Raval wrote:
>  
> Hi Sakari,
>
> > os05b10_set_pad_format() calls os05b10_set_framing_limits() before updating
> > the ACTIVE format. As a result, the VBLANK control handler uses the old
> > height when recalculating exposure limits, causing -ERANGE when switching
> > to a larger resolution.
> >
> > Update the ACTIVE format before adjusting framing controls so control
> > callbacks use the correct dimensions.
> >
> > Signed-off-by: Tarang Raval <tarang.raval@xxxxxxxxxxxxxxxxx>
> > ---
> >  drivers/media/i2c/os05b10.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c
> > index 4601e33b7e8f..476dbcb49351 100644
> > --- a/drivers/media/i2c/os05b10.c
> > +++ b/drivers/media/i2c/os05b10.c
> > @@ -902,14 +902,14 @@ static int os05b10_set_pad_format(struct v4l2_subdev *sd,
> >  
> >          format = v4l2_subdev_state_get_format(sd_state, 0);
> >  
> > +       *format = fmt->format;
> > +
>
> This is the final analysis without this patch.
>
> Please check the logs in the attached file.
>
> When switching the resolution from 1280x720 to 2592x1944, the logs show that
> while configuring the 1280 mode from the 2592 mode, the maximum exposure value
> is calculated as 2219 (fmt->height + ctrl->val - exposure margin).
>
> However, after switching to the 2592 mode, the maximum exposure value is 774.
>
> From both cases, it is evident that fmt->height is being calculated incorrectly
> It is still using the previous height instead of updating to the new resolution.
>
> Please share your thoughts. Am I heading in the right direction?

I think the patch is reasonable. It'd be still nice to get reviews from
others before merging this.

--
Kind regards,

Sakari Ailus