Hi Tomi, Thank you for the patch. On Mon, Apr 12, 2021 at 02:34:53PM +0300, Tomi Valkeinen wrote: > Commit e5b6b07a1b45dd9d19bec1fa1d60750b0fcf2fb0 ("media: v4l2: Extend You can abbreviate that to 12 characters if desired. > VIDIOC_ENUM_FMT to support MC-centric devices") added support to > enumerate formats based in mbus-code. > > Add this feature to cal driver. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx> > --- > drivers/media/platform/ti-vpe/cal-video.c | 21 ++++++++++++++++++--- > 1 file changed, 18 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/platform/ti-vpe/cal-video.c b/drivers/media/platform/ti-vpe/cal-video.c > index ea9b13c16a06..1d9c0fce4b03 100644 > --- a/drivers/media/platform/ti-vpe/cal-video.c > +++ b/drivers/media/platform/ti-vpe/cal-video.c > @@ -437,13 +437,28 @@ static const struct v4l2_ioctl_ops cal_ioctl_video_ops = { > static int cal_mc_enum_fmt_vid_cap(struct file *file, void *priv, > struct v4l2_fmtdesc *f) > { > + unsigned int i; > + unsigned int idx; > + > if (f->index >= cal_num_formats) > return -EINVAL; > > - f->pixelformat = cal_formats[f->index].fourcc; > - f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; As a shortcut, you could have f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; if (!f->mbus_code) { f->pixelformat = cal_formats[f->index].fourcc; return 0; } > + idx = 0; > > - return 0; > + for (i = 0; i < cal_num_formats; ++i) { > + if (f->mbus_code && cal_formats[i].code != f->mbus_code) And drop the first condition here, as well as f->type below. Up to you. Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > + continue; > + > + if (idx == f->index) { > + f->pixelformat = cal_formats[i].fourcc; > + f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; > + return 0; > + } > + > + idx++; > + } > + > + return -EINVAL; > } > > static void cal_mc_try_fmt(struct cal_ctx *ctx, struct v4l2_format *f, -- Regards, Laurent Pinchart