From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 13FA535674F for ; Sat, 25 Jul 2026 07:30:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784964607; cv=none; b=dEwmNIygqVV3tH+HMGARF/NMMN4D3bD8F0JyPBzWlec4F4q6g3FfxmdLAI7lPrioXQUPpp3H3Eur6/HLamad29KQ4UxFtOyONyNoUJMHDr3buMMxBsTsZ6ktGBbHz0g8ShkG4Uqt4DXzNSl1QEw/RUkcYnNyWBFg/+FnRMTYfnc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784964607; c=relaxed/simple; bh=QJ0pw6kT+7ttJEjN5QtiAww89rTFm26gWIo1rCvMZDc=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=V0Gs08u+TxrlwptPqDC+uqE9+jFXaDohAi052TImsNzjj8zRXOZaCJGdM7hjyo71DNr1lhj5cZxlvr5zjkbyCrb+s9tzkhurYF+/YQQzqaNPJdrpB3MCZgtz5TSqawn2bqXBtRA4KomjxADsT6klkvJVeQ4ob12sPLlUbDU2ih0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=wt9TTikE; arc=none smtp.client-ip=209.85.167.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="wt9TTikE" Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5b2a73d5fc3so88131e87.1 for ; Sat, 25 Jul 2026 00:30:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784964604; x=1785569404; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from:references :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to:content-type; bh=XduFr5bfGfiijp0kkCnpSMKS9c+QPdxDM+BNYvNsJf4=; b=wt9TTikE/BucEJ7aMHK7FM0w96ixomWfHCDjYS5jdHvAcGHdwYRicTCJrRZwcnmU4t AICOTOuYosMBhWqNJzFDvf5a+/66H7n18YOVdMWcWbvhBUyotewcFYFUqJ4irB4to1pR 7vjVdIf0T8e3gcGOFGGScL+WGiB3cyJRQ9OkUxVlpsozchckGrfPNH/y98teWRWZbyzl CdZe5vLze0ma+cj8nv9wtva6A5ZRpKRL8nI1AlNkpUYMPPojOAhbQlGfKJDslLLSrDKr 1OSltQ7mQ4aJTO0oxzZXQWkMQSYMn3MDpdNH6ymjdxnxi7DZGRpGKRCdAVirL88ZYa6w ZxLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784964604; x=1785569404; h=content-transfer-encoding:content-type:in-reply-to:from:references :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=XduFr5bfGfiijp0kkCnpSMKS9c+QPdxDM+BNYvNsJf4=; b=Vt9PH41QC2wpnmw7y3hPGiFuq5mC8uSlYUIW/WXSwwBFE6xkPNqbeY9Y8EwtSa0CJh WYdG2eOACZ+3JQzLX6a9RV0xsxOWkD1ABw5jRkWpKO49M2gc/1oQ1yWWmWmxhJKUrvHH lTFaImbsgliZO6lc8xZ4rswJykOKRfRgULhdjnHcDOBSUCttr/WF+VeGUw1r0K2s6CQC zrmyV4PNkGF5CQnwF9YQP+9a5EO/4Tv/r2CPMxVAWGtOB0CfKmx8vkp9eNKyfWAEulOS TCmD6kCiyH4pVMzp4LNreaUuc41lY52kT64kaQ+qPQAbF+BUpEYCmWvnSIf5JWIyYpbi e6rw== X-Forwarded-Encrypted: i=1; AHgh+Rpu5nQcuYMcREs04as+qaD/kJ4grVod44wG1ZNB90ToW/4BnNaFNgdh4Eyr2AWRctVKhf7YWkI3unq8ua8=@vger.kernel.org X-Gm-Message-State: AOJu0YylL2zXB9oiCyF3tG/Ps9v9KTPVwOfxvMdOXjesE2H3lq8zfc87 62hWCEM0QjFTGkJJQ8tVlPahRCzWNn0o8SCImqXKYYkfh2lQFh/pHynQEclyHIaoRcg= X-Gm-Gg: AR+sD11FROB7yXYKn1lwdNPrNhl7+osDHc8RpPQJCo2kLpfl0St4soiFTcclqG7CdEM k5AT6wZa8HgpTQDdIaObAwIgM4nm97dhdG/Awbc++ZYinv2Myy0qeJZL4uYbnkZtBCYlfaiN7XJ 0YO561XKtHhoDtobHjN4Ms/CR9KbsmVWDNHiThWcjueJ/h6RyTnEF/Z0JEoll2eyLHvGv/5pCqI CAtvfnIqi3RZ2+epeG6gkkYoct0FUXJMb6IJvzUmNAohdFtllug7oQTAEElyf7Ak7P+KCr226ra 57GZ7UTq4OI4Fnr75iyVYqKDSFuBiidN/04tNYZSxT6mXSGE0wruPRNJMRwd2dw3Zi4/pI1t12W vN/xCp68Nz7fPc1rVRDpN/RV8ULxlCg18+8oCKvrJEzpvL61Pag5eruFM8ov8d4zaR1Sk+7zXg0 ykGqzylmtfvBgW41zcTJdm06xHiiBK/cRl8vBB7Jd8kL3AO9qVzMPwpX+4 X-Received: by 2002:a05:6512:3b1f:b0:5b1:4fde:61a with SMTP id 2adb3069b0e04-5b2c1b027b8mr134327e87.2.1784964603913; Sat, 25 Jul 2026 00:30:03 -0700 (PDT) Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5b2be1d88b2sm307970e87.46.2026.07.25.00.30.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 25 Jul 2026 00:30:03 -0700 (PDT) Message-ID: Date: Sat, 25 Jul 2026 10:30:02 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 11/17] media: i2c: os05b10: keep vblank and exposure range in sync on mode switch To: Tarang Raval , sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com Cc: Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> <20260718200912.16001-12-tarang.raval@siliconsignals.io> From: Vladimir Zapolskiy In-Reply-To: <20260718200912.16001-12-tarang.raval@siliconsignals.io> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 7/18/26 23:09, Tarang Raval wrote: > Update vblank through the control path on mode changes so exposure > limits and default values are recalculated consistently from the > active mode. > > Signed-off-by: Tarang Raval > --- > drivers/media/i2c/os05b10.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c > index c54b466656aa..d124db74766c 100644 > --- a/drivers/media/i2c/os05b10.c > +++ b/drivers/media/i2c/os05b10.c > @@ -745,13 +745,23 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) > { > struct os05b10 *os05b10 = container_of_const(ctrl->handler, > struct os05b10, handler); > + const struct os05b10_mode *mode_list; > struct v4l2_subdev_state *state; > + const struct os05b10_mode *mode; > struct v4l2_mbus_framefmt *fmt; > + unsigned int num_modes; > int vmax, ret; > > state = v4l2_subdev_get_locked_active_state(&os05b10->sd); > fmt = v4l2_subdev_state_get_format(state, 0); > > + ret = get_mode_table(os05b10, fmt->code, &mode_list, &num_modes); > + if (ret) > + return ret; > + > + mode = v4l2_find_nearest_size(mode_list, num_modes, width, height, > + fmt->width, fmt->height); > + > if (ctrl->id == V4L2_CID_VBLANK) { > /* Honour the VBLANK limits when setting exposure. */ > s64 max = fmt->height + ctrl->val - OS05B10_EXPOSURE_MARGIN; > @@ -759,7 +769,7 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) > ret = __v4l2_ctrl_modify_range(os05b10->exposure, > os05b10->exposure->minimum, max, > os05b10->exposure->step, > - os05b10->exposure->default_value); > + mode->exp); > if (ret) > return ret; > } > @@ -842,7 +852,7 @@ static int os05b10_set_framing_limits(struct os05b10 *os05b10, > const struct os05b10_mode *mode) > { > u64 pixel_rate = os05b10_pixel_rate(os05b10, mode); > - u32 hblank, vblank, vblank_max, max_exp; > + u32 hblank, vblank, vblank_max; > int ret; > > ret = __v4l2_ctrl_modify_range(os05b10->pixel_rate, pixel_rate, > @@ -867,10 +877,7 @@ static int os05b10_set_framing_limits(struct os05b10 *os05b10, > if (ret) > return ret; > > - max_exp = mode->vts - OS05B10_EXPOSURE_MARGIN; > - return __v4l2_ctrl_modify_range(os05b10->exposure, > - OS05B10_EXPOSURE_MIN, max_exp, > - OS05B10_EXPOSURE_STEP, mode->exp); > + return __v4l2_ctrl_s_ctrl(os05b10->vblank, vblank); > } > > static int os05b10_set_pad_format(struct v4l2_subdev *sd, Reviewed-by: Vladimir Zapolskiy -- Best wishes, Vladimir