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)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Fri, 27 Apr 2018 08:25:07 +0000 (10:25 +0200)
This allows us to get rid of a warning from v4l2-core.

Change-Id: I30fae593f0dcdd314d5c2cd18f02528b78e7807c
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 08b023b098973631ce6a1b907bbb52c9ea37ae6b..1e40c5e47889ee546bf5fe70d023f244c7700478 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 3f417e2bcb6473cdae13adbf8eb84edb738af315..bd526d15b7b521380c6422c6332de94a6a1226d8 100644 (file)
@@ -225,15 +225,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 75704ae1b1456d69edb71254a95cec7485d77b22..33ef6b211400b7595b718628f3b3c57dddfd31a3 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 2026260a6a178b63b1a6f6e9c1ba11f7c18a1a4a..864658c6b28b12a7e188f08f0a1f372b4b00143d 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 d1b194ac63bcea3fd69eaf955510e404fef1d20c..ef205b05d245e946d8091bf0c557b402cd5b12de 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 0ce8579ff77124dc92328027fd4102bbd5a9ee27..0cae490db99b52f9aa54aa39889dc94db0d6f17e 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 cc670d0fcd1220e6b5c9ccc90b1cabfc0626111a..5c0bd39d6c30fc2ce97bd2eaa726f008db972cd1 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;
 }