media: imx: capture: Expose V4L2_CAP_IO_MC for the MC-centric API
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 15 Feb 2021 04:26:52 +0000 (05:26 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 11 Mar 2021 10:59:49 +0000 (11:59 +0100)
Report to userspace that the MC-centric API is MC-centric by exposing
the V4L2_CAP_IO_MC. This requires adding support for mbus code filtering
in format enumeration, as required by V4L2_CAP_IO_MC.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/imx/imx-media-capture.c

index 99133b7ffa5f4093b2596db6a52d0d604f1f5e5c..c4360866f7f6ed1d5f85b14748f4467a0cc70a9f 100644 (file)
@@ -96,7 +96,7 @@ static int capture_enum_fmt_vid_cap(struct file *file, void *fh,
                                    struct v4l2_fmtdesc *f)
 {
        return imx_media_enum_pixel_formats(&f->pixelformat, f->index,
-                                           PIXFMT_SEL_ANY, 0);
+                                           PIXFMT_SEL_ANY, f->mbus_code);
 }
 
 static int capture_enum_framesizes(struct file *file, void *fh,
@@ -986,7 +986,8 @@ imx_media_capture_device_init(struct device *dev, struct v4l2_subdev *src_sd,
        vfd->release = video_device_release;
        vfd->vfl_dir = VFL_DIR_RX;
        vfd->tvnorms = V4L2_STD_NTSC | V4L2_STD_PAL | V4L2_STD_SECAM;
-       vfd->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
+       vfd->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING
+                        | (!legacy_api ? V4L2_CAP_IO_MC : 0);
        vfd->lock = &priv->mutex;
        vfd->queue = &priv->q;