Set the V4L2_CAP_IO_MC capability flag to report this vimc
inputs/outputs are controlled by the media graph.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
 static int vimc_cap_enum_fmt_vid_cap(struct file *file, void *priv,
                                     struct v4l2_fmtdesc *f)
 {
-       const struct vimc_pix_map *vpix = vimc_pix_map_by_index(f->index);
+       const struct vimc_pix_map *vpix;
+
+       if (f->mbus_code) {
+               if (f->index > 0)
+                       return -EINVAL;
+
+               vpix = vimc_pix_map_by_code(f->mbus_code);
+       } else {
+               vpix = vimc_pix_map_by_index(f->index);
+       }
 
        if (!vpix)
                return -EINVAL;
 
        /* Initialize the video_device struct */
        vdev = &vcap->vdev;
-       vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
+       vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING
+                         | V4L2_CAP_IO_MC;
        vdev->entity.ops = &vimc_cap_mops;
        vdev->release = video_device_release_empty;
        vdev->fops = &vimc_cap_fops;