Re: [PATCH] media: i2c: ov5647: handle V4L2_CID_LINK_FREQ in s_ctrl

From: Sakari Ailus

Date: Sun Mar 22 2026 - 18:43:55 EST


Hi Suraj,

Thanks for the patch.

On Sun, Mar 22, 2026 at 07:23:48PM +0530, Suraj Sonawane wrote:
> Handle V4L2_CID_LINK_FREQ in ov5647_s_ctrl().
>
> Currently this control is defined but not handled in s_ctrl(),
> so V4L2 falls back to estimating link frequency from pixel rate
> and prints warning like:
>
> v4l2_get_link_freq: Link frequency estimated using pixel rate:
> result might be inaccurate
> v4l2_get_link_freq: Consider implementing support for V4L2_CID_LINK_FREQ
> in the transmitter driver
>
> Handle it as no-op since link frequency is fixed per mode and
> not meant to be changed at runtime.
>
> Avoid these warnings when control is queried.
>
> Signed-off-by: Suraj Sonawane <surajsonawane0215@xxxxxxxxx>
> ---
> drivers/media/i2c/ov5647.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c
> index 6a46ef723..a5a9cff5a 100644
> --- a/drivers/media/i2c/ov5647.c
> +++ b/drivers/media/i2c/ov5647.c
> @@ -999,6 +999,9 @@ static int ov5647_s_ctrl(struct v4l2_ctrl *ctrl)
> ret = cci_write(sensor->regmap, OV5647_REG_HTS,
> sensor->mode->format.width + ctrl->val, &ret);
> break;
> + case V4L2_CID_LINK_FREQ:
> + ret = 0;
> + break;
> case V4L2_CID_TEST_PATTERN:
> ret = cci_write(sensor->regmap, OV5647_REG_ISPCTRL3D,
> ov5647_test_pattern_val[ctrl->val], NULL);

Can you instead turn the first if () in the function into a switch and
handle this there, too, returning zero on the LINK_FREQ control?

--
Regards,

Sakari Ailus