From: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx> 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@xxxxxxxxxxxx> Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> Acked-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> --- Changes since v5: - Wrap line longer than 80 characters - Implement mbus_code filtering for format enumeration --- drivers/media/platform/vimc/vimc-capture.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/vimc/vimc-capture.c b/drivers/media/platform/vimc/vimc-capture.c index 76c015898cfd..86b3580a746f 100644 --- a/drivers/media/platform/vimc/vimc-capture.c +++ b/drivers/media/platform/vimc/vimc-capture.c @@ -146,7 +146,12 @@ static int vimc_cap_s_fmt_vid_cap(struct file *file, void *priv, 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) + vpix = vimc_pix_map_by_code(f->mbus_code); + else + vpix = vimc_pix_map_by_index(f->index); if (!vpix) return -EINVAL; @@ -447,7 +452,8 @@ struct vimc_ent_device *vimc_cap_add(struct vimc_device *vimc, /* 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 = vimc_cap_release; vdev->fops = &vimc_cap_fops; -- Regards, Laurent Pinchart