On 4/12/19 11:20 AM, Boris Brezillon wrote: > The fimc-isp-video.c and fimc-lite.c were missing the > V4L2_CAP_VIDEO_CAPTURE_MPLANE flag when reporting device caps. > > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> > --- > Changes in v3: > - New patch > --- > drivers/media/platform/exynos4-is/fimc-isp-video.c | 4 +++- > drivers/media/platform/exynos4-is/fimc-lite.c | 2 +- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/platform/exynos4-is/fimc-isp-video.c b/drivers/media/platform/exynos4-is/fimc-isp-video.c > index bb35a2017f21..8cd7b1c6565c 100644 > --- a/drivers/media/platform/exynos4-is/fimc-isp-video.c > +++ b/drivers/media/platform/exynos4-is/fimc-isp-video.c > @@ -349,7 +349,9 @@ static int isp_video_querycap(struct file *file, void *priv, > { > struct fimc_isp *isp = video_drvdata(file); > > - __fimc_vidioc_querycap(&isp->pdev->dev, cap, V4L2_CAP_STREAMING); > + __fimc_vidioc_querycap(&isp->pdev->dev, cap, > + V4L2_CAP_STREAMING | > + V4L2_CAP_VIDEO_CAPTURE_MPLANE); > return 0; > } > > diff --git a/drivers/media/platform/exynos4-is/fimc-lite.c b/drivers/media/platform/exynos4-is/fimc-lite.c > index 96f0a8a0dcae..13dfa5e39139 100644 > --- a/drivers/media/platform/exynos4-is/fimc-lite.c > +++ b/drivers/media/platform/exynos4-is/fimc-lite.c > @@ -659,7 +659,7 @@ static int fimc_lite_querycap(struct file *file, void *priv, > snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s", > dev_name(&fimc->pdev->dev)); > > - cap->device_caps = V4L2_CAP_STREAMING; > + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_STREAMING; > cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; That's not what should happen. The driver should set device_caps in the struct video_device, and then it can drop setting cap->device_caps and cap->capabilities from the querycap implementation (it will be set by the v4l2 core based on the vdev->device_caps value). It definitely is a (surprising!) bug that V4L2_CAP_VIDEO_CAPTURE_MPLANE wasn't set here, but the real thing that you should check MPLANE capable drivers for is that they set vdev->device_caps. Regards, Hans > return 0; > } >