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

media: am437x/davinci: set device_caps in struct video_device

Instead of filling in the struct v4l2_capability device_caps
field, fill in the struct video_device device_caps field.

That way the V4L2 core knows what the capabilities of the
video device are.
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Acked-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 59fe916c
...@@ -1400,10 +1400,6 @@ static int vpfe_querycap(struct file *file, void *priv, ...@@ -1400,10 +1400,6 @@ static int vpfe_querycap(struct file *file, void *priv,
strscpy(cap->card, "TI AM437x VPFE", sizeof(cap->card)); strscpy(cap->card, "TI AM437x VPFE", sizeof(cap->card));
snprintf(cap->bus_info, sizeof(cap->bus_info), snprintf(cap->bus_info, sizeof(cap->bus_info),
"platform:%s", vpfe->v4l2_dev.name); "platform:%s", vpfe->v4l2_dev.name);
cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
V4L2_CAP_READWRITE;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
return 0; return 0;
} }
...@@ -2379,6 +2375,8 @@ static int vpfe_probe_complete(struct vpfe_device *vpfe) ...@@ -2379,6 +2375,8 @@ static int vpfe_probe_complete(struct vpfe_device *vpfe)
vdev->vfl_dir = VFL_DIR_RX; vdev->vfl_dir = VFL_DIR_RX;
vdev->queue = q; vdev->queue = q;
vdev->lock = &vpfe->lock; vdev->lock = &vpfe->lock;
vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
V4L2_CAP_READWRITE;
video_set_drvdata(vdev, vpfe); video_set_drvdata(vdev, vpfe);
err = video_register_device(&vpfe->video_dev, VFL_TYPE_GRABBER, -1); err = video_register_device(&vpfe->video_dev, VFL_TYPE_GRABBER, -1);
if (err) { if (err) {
......
...@@ -633,8 +633,6 @@ static int vpbe_display_querycap(struct file *file, void *priv, ...@@ -633,8 +633,6 @@ static int vpbe_display_querycap(struct file *file, void *priv,
struct vpbe_layer *layer = video_drvdata(file); struct vpbe_layer *layer = video_drvdata(file);
struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev;
cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
snprintf(cap->driver, sizeof(cap->driver), "%s", snprintf(cap->driver, sizeof(cap->driver), "%s",
dev_name(vpbe_dev->pdev)); dev_name(vpbe_dev->pdev));
snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s", snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
...@@ -1309,6 +1307,7 @@ static int init_vpbe_layer(int i, struct vpbe_display *disp_dev, ...@@ -1309,6 +1307,7 @@ static int init_vpbe_layer(int i, struct vpbe_display *disp_dev,
vbd->v4l2_dev = &disp_dev->vpbe_dev->v4l2_dev; vbd->v4l2_dev = &disp_dev->vpbe_dev->v4l2_dev;
vbd->lock = &vpbe_display_layer->opslock; vbd->lock = &vpbe_display_layer->opslock;
vbd->vfl_dir = VFL_DIR_TX; vbd->vfl_dir = VFL_DIR_TX;
vbd->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
if (disp_dev->vpbe_dev->current_timings.timings_type & if (disp_dev->vpbe_dev->current_timings.timings_type &
VPBE_ENC_STD) VPBE_ENC_STD)
......
...@@ -877,8 +877,6 @@ static int vpfe_querycap(struct file *file, void *priv, ...@@ -877,8 +877,6 @@ static int vpfe_querycap(struct file *file, void *priv,
v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev, "vpfe_querycap\n"); v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev, "vpfe_querycap\n");
cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
strscpy(cap->driver, CAPTURE_DRV_NAME, sizeof(cap->driver)); strscpy(cap->driver, CAPTURE_DRV_NAME, sizeof(cap->driver));
strscpy(cap->bus_info, "VPFE", sizeof(cap->bus_info)); strscpy(cap->bus_info, "VPFE", sizeof(cap->bus_info));
strscpy(cap->card, vpfe_dev->cfg->card_name, sizeof(cap->card)); strscpy(cap->card, vpfe_dev->cfg->card_name, sizeof(cap->card));
...@@ -1785,6 +1783,7 @@ static int vpfe_probe(struct platform_device *pdev) ...@@ -1785,6 +1783,7 @@ static int vpfe_probe(struct platform_device *pdev)
vfd->ioctl_ops = &vpfe_ioctl_ops; vfd->ioctl_ops = &vpfe_ioctl_ops;
vfd->tvnorms = 0; vfd->tvnorms = 0;
vfd->v4l2_dev = &vpfe_dev->v4l2_dev; vfd->v4l2_dev = &vpfe_dev->v4l2_dev;
vfd->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
snprintf(vfd->name, sizeof(vfd->name), snprintf(vfd->name, sizeof(vfd->name),
"%s_V%d.%d.%d", "%s_V%d.%d.%d",
CAPTURE_DRV_NAME, CAPTURE_DRV_NAME,
......
...@@ -1078,8 +1078,6 @@ static int vpif_querycap(struct file *file, void *priv, ...@@ -1078,8 +1078,6 @@ static int vpif_querycap(struct file *file, void *priv,
{ {
struct vpif_capture_config *config = vpif_dev->platform_data; struct vpif_capture_config *config = vpif_dev->platform_data;
cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
strscpy(cap->driver, VPIF_DRIVER_NAME, sizeof(cap->driver)); strscpy(cap->driver, VPIF_DRIVER_NAME, sizeof(cap->driver));
snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s", snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
dev_name(vpif_dev)); dev_name(vpif_dev));
...@@ -1466,6 +1464,7 @@ static int vpif_probe_complete(void) ...@@ -1466,6 +1464,7 @@ static int vpif_probe_complete(void)
vdev->vfl_dir = VFL_DIR_RX; vdev->vfl_dir = VFL_DIR_RX;
vdev->queue = q; vdev->queue = q;
vdev->lock = &common->lock; vdev->lock = &common->lock;
vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
video_set_drvdata(&ch->video_dev, ch); video_set_drvdata(&ch->video_dev, ch);
err = video_register_device(vdev, err = video_register_device(vdev,
VFL_TYPE_GRABBER, (j ? 1 : 0)); VFL_TYPE_GRABBER, (j ? 1 : 0));
......
...@@ -584,8 +584,6 @@ static int vpif_querycap(struct file *file, void *priv, ...@@ -584,8 +584,6 @@ static int vpif_querycap(struct file *file, void *priv,
{ {
struct vpif_display_config *config = vpif_dev->platform_data; struct vpif_display_config *config = vpif_dev->platform_data;
cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
strscpy(cap->driver, VPIF_DRIVER_NAME, sizeof(cap->driver)); strscpy(cap->driver, VPIF_DRIVER_NAME, sizeof(cap->driver));
snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s", snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
dev_name(vpif_dev)); dev_name(vpif_dev));
...@@ -1214,6 +1212,7 @@ static int vpif_probe_complete(void) ...@@ -1214,6 +1212,7 @@ static int vpif_probe_complete(void)
vdev->vfl_dir = VFL_DIR_TX; vdev->vfl_dir = VFL_DIR_TX;
vdev->queue = q; vdev->queue = q;
vdev->lock = &common->lock; vdev->lock = &common->lock;
vdev->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
video_set_drvdata(&ch->video_dev, ch); video_set_drvdata(&ch->video_dev, ch);
err = video_register_device(vdev, VFL_TYPE_GRABBER, err = video_register_device(vdev, VFL_TYPE_GRABBER,
(j ? 3 : 2)); (j ? 3 : 2));
......
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