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

Sakari Ailus sakari.ailus at iki.fi
Tue Mar 14 12:05:21 PDT 2023


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



More information about the linux-arm-kernel mailing list