Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: vimc: Make use of V4L2_CAP_IO_MC

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>

authored by

Niklas Söderlund and committed by
Mauro Carvalho Chehab
c7ff09f6 148dd206

+12 -2
+12 -2
drivers/media/test-drivers/vimc/vimc-capture.c
··· 149 149 static int vimc_cap_enum_fmt_vid_cap(struct file *file, void *priv, 150 150 struct v4l2_fmtdesc *f) 151 151 { 152 - const struct vimc_pix_map *vpix = vimc_pix_map_by_index(f->index); 152 + const struct vimc_pix_map *vpix; 153 + 154 + if (f->mbus_code) { 155 + if (f->index > 0) 156 + return -EINVAL; 157 + 158 + vpix = vimc_pix_map_by_code(f->mbus_code); 159 + } else { 160 + vpix = vimc_pix_map_by_index(f->index); 161 + } 153 162 154 163 if (!vpix) 155 164 return -EINVAL; ··· 459 450 460 451 /* Initialize the video_device struct */ 461 452 vdev = &vcap->vdev; 462 - vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; 453 + vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING 454 + | V4L2_CAP_IO_MC; 463 455 vdev->entity.ops = &vimc_cap_mops; 464 456 vdev->release = video_device_release_empty; 465 457 vdev->fops = &vimc_cap_fops;