Re: [PATCH v12 5/5] media: i2c: imx334: update pixel and link frequency

From: Sakari Ailus
Date: Tue Mar 14 2023 - 15:06:54 EST


Hi Shravan,

On Wed, Mar 01, 2023 at 01:04:12PM +0530, shravan kumar wrote:
> @@ -885,7 +895,13 @@ static int imx334_init_pad_cfg(struct v4l2_subdev *sd,
> struct v4l2_subdev_format fmt = { 0 };
>
> fmt.which = sd_state ? V4L2_SUBDEV_FORMAT_TRY : V4L2_SUBDEV_FORMAT_ACTIVE;
> - imx334_fill_pad_format(imx334, &supported_modes[0], &fmt);
> + fmt->format.code = imx334->cur_code;

This does not compile.

> + imx334_fill_pad_format(imx334, imx334->cur_mode, &fmt);
> +
> + __v4l2_ctrl_modify_range(imx334->link_freq_ctrl, 0,
> + __fls(imx334->menu_skip_mask),
> + ~(imx334->menu_skip_mask),
> + __ffs(imx334->menu_skip_mask));

You're not holding imx334->mutex here, as you should. Also accessing
imx334->cur_code should only be done while that mutex is acquired.

What's the purpose of calling __v4l2_ctrl_modify_range() here, all these
values are static once probe() function has been called, aren't they?

I'm dropping this patch for now, taking the first four.

>
> return imx334_set_pad_format(sd, sd_state, &fmt);
> }

--
Kind regards,

Sakari Ailus