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