On Wed, Aug 30, 2023 at 10:23:22AM +0530, Umang Jain wrote: > The imx214 driver uses the subdev active state, there's no Does it ? I don't see a call to v4l2_subdev_init_finalize(), and the imx214 struct has fmt and crop fields in which it stores the active format. > need to implement the .get_fmt() operation manually. Use the > v4l2_subdev_get_fmt() helper instead. > > Signed-off-by: Umang Jain <umang.jain@xxxxxxxxxxxxxxxx> > --- > drivers/media/i2c/imx214.c | 17 +---------------- > 1 file changed, 1 insertion(+), 16 deletions(-) > > diff --git a/drivers/media/i2c/imx214.c b/drivers/media/i2c/imx214.c > index 2f9c8582f940..d8bdc52f552a 100644 > --- a/drivers/media/i2c/imx214.c > +++ b/drivers/media/i2c/imx214.c > @@ -548,21 +548,6 @@ __imx214_get_pad_format(struct imx214 *imx214, > } > } > > -static int imx214_get_format(struct v4l2_subdev *sd, > - struct v4l2_subdev_state *sd_state, > - struct v4l2_subdev_format *format) > -{ > - struct imx214 *imx214 = to_imx214(sd); > - > - mutex_lock(&imx214->mutex); > - format->format = *__imx214_get_pad_format(imx214, sd_state, > - format->pad, > - format->which); > - mutex_unlock(&imx214->mutex); > - > - return 0; > -} > - > static struct v4l2_rect * > __imx214_get_pad_crop(struct imx214 *imx214, > struct v4l2_subdev_state *sd_state, > @@ -842,7 +827,7 @@ static const struct v4l2_subdev_pad_ops imx214_subdev_pad_ops = { > .enum_mbus_code = imx214_enum_mbus_code, > .enum_frame_size = imx214_enum_frame_size, > .enum_frame_interval = imx214_enum_frame_interval, > - .get_fmt = imx214_get_format, > + .get_fmt = v4l2_subdev_get_fmt, > .set_fmt = imx214_set_format, > .get_selection = imx214_get_selection, > .init_cfg = imx214_entity_init_cfg, -- Regards, Laurent Pinchart