Commit a020c747 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

[media] media/platform: fix querycap

Querycap shouldn't set the version field (the core does that for you),
but it should set the device_caps field.
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Cc: Scott Jiang <scott.jiang.linux@gmail.com>
Cc: Gerhard Sittig <gsi@denx.de>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 7027c448
...@@ -841,7 +841,8 @@ static int bcap_querycap(struct file *file, void *priv, ...@@ -841,7 +841,8 @@ static int bcap_querycap(struct file *file, void *priv,
{ {
struct bcap_device *bcap_dev = video_drvdata(file); struct bcap_device *bcap_dev = video_drvdata(file);
cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
strlcpy(cap->driver, CAPTURE_DRV_NAME, sizeof(cap->driver)); strlcpy(cap->driver, CAPTURE_DRV_NAME, sizeof(cap->driver));
strlcpy(cap->bus_info, "Blackfin Platform", sizeof(cap->bus_info)); strlcpy(cap->bus_info, "Blackfin Platform", sizeof(cap->bus_info));
strlcpy(cap->card, bcap_dev->cfg->card_name, sizeof(cap->card)); strlcpy(cap->card, bcap_dev->cfg->card_name, sizeof(cap->card));
......
...@@ -604,10 +604,11 @@ static int vidioc_querycap(struct file *file, void *priv, ...@@ -604,10 +604,11 @@ static int vidioc_querycap(struct file *file, void *priv,
{ {
strcpy(cap->driver, "viu"); strcpy(cap->driver, "viu");
strcpy(cap->card, "viu"); strcpy(cap->card, "viu");
cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | cap->device_caps = V4L2_CAP_VIDEO_CAPTURE |
V4L2_CAP_STREAMING | V4L2_CAP_STREAMING |
V4L2_CAP_VIDEO_OVERLAY | V4L2_CAP_VIDEO_OVERLAY |
V4L2_CAP_READWRITE; V4L2_CAP_READWRITE;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
return 0; return 0;
} }
......
...@@ -1408,9 +1408,9 @@ static int mcam_vidioc_querycap(struct file *file, void *priv, ...@@ -1408,9 +1408,9 @@ static int mcam_vidioc_querycap(struct file *file, void *priv,
{ {
strcpy(cap->driver, "marvell_ccic"); strcpy(cap->driver, "marvell_ccic");
strcpy(cap->card, "marvell_ccic"); strcpy(cap->card, "marvell_ccic");
cap->version = 1; cap->device_caps = V4L2_CAP_VIDEO_CAPTURE |
cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
V4L2_CAP_READWRITE | V4L2_CAP_STREAMING; V4L2_CAP_READWRITE | V4L2_CAP_STREAMING;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
return 0; return 0;
} }
......
...@@ -402,13 +402,8 @@ static int vidioc_querycap(struct file *file, void *priv, ...@@ -402,13 +402,8 @@ static int vidioc_querycap(struct file *file, void *priv,
{ {
strncpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver) - 1); strncpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver) - 1);
strncpy(cap->card, MEM2MEM_NAME, sizeof(cap->card) - 1); strncpy(cap->card, MEM2MEM_NAME, sizeof(cap->card) - 1);
/* cap->device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
* This is only a mem-to-mem video device. The capture and output cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
* device capability flags are left only for backward compatibility
* and are scheduled for removal.
*/
cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT |
V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
return 0; return 0;
} }
......
...@@ -1054,8 +1054,9 @@ static int vidioc_querycap(struct file *file, void *fh, ...@@ -1054,8 +1054,9 @@ static int vidioc_querycap(struct file *file, void *fh,
strlcpy(cap->driver, VOUT_NAME, sizeof(cap->driver)); strlcpy(cap->driver, VOUT_NAME, sizeof(cap->driver));
strlcpy(cap->card, vout->vfd->name, sizeof(cap->card)); strlcpy(cap->card, vout->vfd->name, sizeof(cap->card));
cap->bus_info[0] = '\0'; cap->bus_info[0] = '\0';
cap->capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_OUTPUT | cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_OUTPUT |
V4L2_CAP_VIDEO_OUTPUT_OVERLAY; V4L2_CAP_VIDEO_OUTPUT_OVERLAY;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
return 0; return 0;
} }
......
...@@ -396,7 +396,8 @@ static int sh_vou_querycap(struct file *file, void *priv, ...@@ -396,7 +396,8 @@ static int sh_vou_querycap(struct file *file, void *priv,
dev_dbg(vou_dev->v4l2_dev.dev, "%s()\n", __func__); dev_dbg(vou_dev->v4l2_dev.dev, "%s()\n", __func__);
strlcpy(cap->card, "SuperH VOU", sizeof(cap->card)); strlcpy(cap->card, "SuperH VOU", sizeof(cap->card));
cap->capabilities = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
return 0; return 0;
} }
......
...@@ -985,9 +985,9 @@ static int viacam_querycap(struct file *filp, void *priv, ...@@ -985,9 +985,9 @@ static int viacam_querycap(struct file *filp, void *priv,
{ {
strcpy(cap->driver, "via-camera"); strcpy(cap->driver, "via-camera");
strcpy(cap->card, "via-camera"); strcpy(cap->card, "via-camera");
cap->version = 1; cap->device_caps = V4L2_CAP_VIDEO_CAPTURE |
cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
V4L2_CAP_READWRITE | V4L2_CAP_STREAMING; V4L2_CAP_READWRITE | V4L2_CAP_STREAMING;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
return 0; return 0;
} }
......
...@@ -2932,10 +2932,8 @@ static int vino_querycap(struct file *file, void *__fh, ...@@ -2932,10 +2932,8 @@ static int vino_querycap(struct file *file, void *__fh,
strcpy(cap->driver, vino_driver_name); strcpy(cap->driver, vino_driver_name);
strcpy(cap->card, vino_driver_description); strcpy(cap->card, vino_driver_description);
strcpy(cap->bus_info, vino_bus_name); strcpy(cap->bus_info, vino_bus_name);
cap->capabilities = cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
V4L2_CAP_VIDEO_CAPTURE | cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
V4L2_CAP_STREAMING;
// V4L2_CAP_OVERLAY, V4L2_CAP_READWRITE
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment