[media] s5p-tv: Report only multi-plane capabilities in vidioc_querycap
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Mon, 24 Sep 2012 09:03:04 +0000 (06:03 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 2 Oct 2012 17:04:19 +0000 (14:04 -0300)
The mixer video node supports only multi-planar API so the driver
should not be setting V4L2_CAP_VIDEO_OUTPUT flags. Fix this and
also switch to device_caps. Additionally fix the VIDIOC_ENUM_FMT
ioctl handler which now works for V4L2_BUF_TYPE_CAPTURE, rather
than expected V4L2_BUF_TYPE_CAPTURE_MPLANE.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/platform/s5p-tv/mixer_video.c

index bd42ea30165014c6639f5802823341a73ecf7a03..0c1cd895ff660453dfff91f5ac40feea5d67535d 100644 (file)
@@ -164,9 +164,8 @@ static int mxr_querycap(struct file *file, void *priv,
        strlcpy(cap->driver, MXR_DRIVER_NAME, sizeof cap->driver);
        strlcpy(cap->card, layer->vfd.name, sizeof cap->card);
        sprintf(cap->bus_info, "%d", layer->idx);
-       cap->version = KERNEL_VERSION(0, 1, 0);
-       cap->capabilities = V4L2_CAP_STREAMING |
-               V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OUTPUT_MPLANE;
+       cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_OUTPUT_MPLANE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 
        return 0;
 }
@@ -718,7 +717,7 @@ static int mxr_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
 static const struct v4l2_ioctl_ops mxr_ioctl_ops = {
        .vidioc_querycap = mxr_querycap,
        /* format handling */
-       .vidioc_enum_fmt_vid_out = mxr_enum_fmt,
+       .vidioc_enum_fmt_vid_out_mplane = mxr_enum_fmt,
        .vidioc_s_fmt_vid_out_mplane = mxr_s_fmt,
        .vidioc_g_fmt_vid_out_mplane = mxr_g_fmt,
        /* buffer control */