fimc-is: Fix/add vidioc_querycap for several video nodes
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Thu, 30 Jul 2015 01:55:38 +0000 (10:55 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Wed, 14 Dec 2016 04:47:44 +0000 (13:47 +0900)
This allows us to get rid of a warning from v4l2-core.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
drivers/media/platform/exynos/fimc-is/fimc-is-video-3aa.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-isp.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-scc.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-scp.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-sensor.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-vdisc.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-vdiso.c

index 08b023b..1e40c5e 100644 (file)
@@ -273,7 +273,17 @@ const struct v4l2_file_operations fimc_is_3aa_video_fops = {
 static int fimc_is_3aa_video_querycap(struct file *file, void *fh,
        struct v4l2_capability *cap)
 {
-       /* Todo : add to query capability code */
+       struct fimc_is_video_ctx *vctx = file->private_data;
+       struct fimc_is_device_ischain *device = vctx->device;
+
+       strlcpy(cap->driver, FIMC_IS_DRV_NAME, sizeof(cap->driver));
+       strlcpy(cap->card, FIMC_IS_DRV_NAME, sizeof(cap->card));
+       snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
+                                       dev_name(&device->pdev->dev));
+       cap->device_caps = V4L2_CAP_STREAMING
+                               | V4L2_CAP_VIDEO_OUTPUT_MPLANE
+                               | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
        return 0;
 }
 
index c9d936d..2f53a2b 100644 (file)
@@ -227,15 +227,12 @@ static int fimc_is_isp_video_querycap(struct file *file, void *fh,
 {
        struct fimc_is_core *isp = video_drvdata(file);
 
-       strncpy(cap->driver, isp->pdev->name, sizeof(cap->driver) - 1);
-
-       dbg_isp("%s(devname : %s)\n", __func__, cap->driver);
-       strncpy(cap->card, isp->pdev->name, sizeof(cap->card) - 1);
-       cap->bus_info[0] = 0;
-       cap->version = KERNEL_VERSION(1, 0, 0);
-       cap->capabilities = V4L2_CAP_STREAMING
-                               | V4L2_CAP_VIDEO_CAPTURE
-                               | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       strlcpy(cap->driver, FIMC_IS_DRV_NAME, sizeof(cap->driver));
+       strlcpy(cap->card, FIMC_IS_DRV_NAME, sizeof(cap->card));
+       snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
+                                       dev_name(&isp->pdev->dev));
+       cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 
        return 0;
 }
index 75704ae..33ef6b2 100644 (file)
@@ -225,17 +225,15 @@ const struct v4l2_file_operations fimc_is_scc_video_fops = {
 static int fimc_is_scc_video_querycap(struct file *file, void *fh,
                                                struct v4l2_capability *cap)
 {
-       struct fimc_is_core *isp = video_drvdata(file);
-
-       strncpy(cap->driver, isp->pdev->name, sizeof(cap->driver) - 1);
-
-       dbg("(devname : %s)\n", cap->driver);
-       strncpy(cap->card, isp->pdev->name, sizeof(cap->card) - 1);
-       cap->bus_info[0] = 0;
-       cap->version = KERNEL_VERSION(1, 0, 0);
-       cap->capabilities = V4L2_CAP_STREAMING
-                               | V4L2_CAP_VIDEO_CAPTURE
-                               | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       struct fimc_is_video_ctx *vctx = file->private_data;
+       struct fimc_is_device_ischain *device = vctx->device;
+
+       strlcpy(cap->driver, FIMC_IS_DRV_NAME, sizeof(cap->driver));
+       strlcpy(cap->card, FIMC_IS_DRV_NAME, sizeof(cap->card));
+       snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
+                                       dev_name(&device->pdev->dev));
+       cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 
        return 0;
 }
index 2026260..864658c 100644 (file)
@@ -34,6 +34,7 @@
 #include "fimc-is-regs.h"
 #include "fimc-is-err.h"
 #include "fimc-is-video.h"
+#include "fimc-is-core.h"
 
 const struct v4l2_file_operations fimc_is_scp_video_fops;
 const struct v4l2_ioctl_ops fimc_is_scp_video_ioctl_ops;
@@ -227,15 +228,12 @@ static int fimc_is_scp_video_querycap(struct file *file, void *fh,
 {
        struct fimc_is_core *core = video_drvdata(file);
 
-       strncpy(cap->driver, core->pdev->name, sizeof(cap->driver) - 1);
-
-       dbg("%s(devname : %s)\n", __func__, cap->driver);
-       strncpy(cap->card, core->pdev->name, sizeof(cap->card) - 1);
-       cap->bus_info[0] = 0;
-       cap->version = KERNEL_VERSION(1, 0, 0);
-       cap->capabilities = V4L2_CAP_STREAMING
-                                       | V4L2_CAP_VIDEO_CAPTURE
-                                       | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       strlcpy(cap->driver, FIMC_IS_DRV_NAME, sizeof(cap->driver));
+       strlcpy(cap->card, FIMC_IS_DRV_NAME, sizeof(cap->card));
+       snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
+                                       dev_name(&core->pdev->dev));
+       cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 
        return 0;
 }
index d1b194a..ef205b0 100644 (file)
@@ -35,6 +35,7 @@
 #include "fimc-is-err.h"
 #include "fimc-is-video.h"
 #include "fimc-is-metadata.h"
+#include "fimc-is-core.h"
 
 const struct v4l2_file_operations fimc_is_sen_video_fops;
 const struct v4l2_ioctl_ops fimc_is_sen_video_ioctl_ops;
@@ -228,7 +229,16 @@ const struct v4l2_file_operations fimc_is_sen_video_fops = {
 static int fimc_is_sen_video_querycap(struct file *file, void *fh,
                                        struct v4l2_capability *cap)
 {
-       /* Todo : add to query capability code */
+       struct fimc_is_video_ctx *vctx = file->private_data;
+       struct fimc_is_device_sensor *device = vctx->device;
+
+       strlcpy(cap->driver, FIMC_IS_DRV_NAME, sizeof(cap->driver));
+       strlcpy(cap->card, FIMC_IS_DRV_NAME, sizeof(cap->card));
+       snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
+                                       dev_name(&device->pdev->dev));
+       cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
+
        return 0;
 }
 
index 0ce8579..0cae490 100644 (file)
@@ -208,15 +208,12 @@ static int fimc_is_vdc_video_querycap(struct file *file, void *fh,
 {
        struct fimc_is_core *core = video_drvdata(file);
 
-       dbg_vdisc("%s(devname : %s)\n", __func__, core->pdev->name);
-
-       strncpy(cap->driver, core->pdev->name, sizeof(cap->driver) - 1);
-       strncpy(cap->card, core->pdev->name, sizeof(cap->card) - 1);
-       cap->bus_info[0] = 0;
-       cap->version = KERNEL_VERSION(1, 0, 0);
-       cap->capabilities = V4L2_CAP_STREAMING
-               | V4L2_CAP_VIDEO_CAPTURE
-               | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       strlcpy(cap->driver, FIMC_IS_DRV_NAME, sizeof(cap->driver));
+       strlcpy(cap->card, FIMC_IS_DRV_NAME, sizeof(cap->card));
+       snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
+                                       dev_name(&core->pdev->dev));
+       cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 
        return 0;
 }
index cc670d0..5c0bd39 100644 (file)
@@ -218,15 +218,12 @@ static int fimc_is_vdo_video_querycap(struct file *file, void *fh,
 {
        struct fimc_is_core *core = video_drvdata(file);
 
-       strncpy(cap->driver, core->pdev->name, sizeof(cap->driver) - 1);
-
-       dbg_vdiso("%s(devname : %s)\n", __func__, cap->driver);
-       strncpy(cap->card, core->pdev->name, sizeof(cap->card) - 1);
-       cap->bus_info[0] = 0;
-       cap->version = KERNEL_VERSION(1, 0, 0);
-       cap->capabilities = V4L2_CAP_STREAMING
-                               | V4L2_CAP_VIDEO_CAPTURE
-                               | V4L2_CAP_VIDEO_CAPTURE_MPLANE;
+       strlcpy(cap->driver, FIMC_IS_DRV_NAME, sizeof(cap->driver));
+       strlcpy(cap->card, FIMC_IS_DRV_NAME, sizeof(cap->card));
+       snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
+                                       dev_name(&core->pdev->dev));
+       cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_OUTPUT_MPLANE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 
        return 0;
 }