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: Hans Verkuil <hverkuil-cisco@xs4all.nl> Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
59fe916c84
commit
b2778a30c7
@ -1400,10 +1400,6 @@ static int vpfe_querycap(struct file *file, void *priv,
|
||||
strscpy(cap->card, "TI AM437x VPFE", sizeof(cap->card));
|
||||
snprintf(cap->bus_info, sizeof(cap->bus_info),
|
||||
"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;
|
||||
}
|
||||
|
||||
@ -2379,6 +2375,8 @@ static int vpfe_probe_complete(struct vpfe_device *vpfe)
|
||||
vdev->vfl_dir = VFL_DIR_RX;
|
||||
vdev->queue = q;
|
||||
vdev->lock = &vpfe->lock;
|
||||
vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
|
||||
V4L2_CAP_READWRITE;
|
||||
video_set_drvdata(vdev, vpfe);
|
||||
err = video_register_device(&vpfe->video_dev, VFL_TYPE_GRABBER, -1);
|
||||
if (err) {
|
||||
|
@ -633,8 +633,6 @@ static int vpbe_display_querycap(struct file *file, void *priv,
|
||||
struct vpbe_layer *layer = video_drvdata(file);
|
||||
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",
|
||||
dev_name(vpbe_dev->pdev));
|
||||
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,
|
||||
vbd->v4l2_dev = &disp_dev->vpbe_dev->v4l2_dev;
|
||||
vbd->lock = &vpbe_display_layer->opslock;
|
||||
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 &
|
||||
VPBE_ENC_STD)
|
||||
|
@ -877,8 +877,6 @@ static int vpfe_querycap(struct file *file, void *priv,
|
||||
|
||||
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->bus_info, "VPFE", sizeof(cap->bus_info));
|
||||
strscpy(cap->card, vpfe_dev->cfg->card_name, sizeof(cap->card));
|
||||
@ -1785,6 +1783,7 @@ static int vpfe_probe(struct platform_device *pdev)
|
||||
vfd->ioctl_ops = &vpfe_ioctl_ops;
|
||||
vfd->tvnorms = 0;
|
||||
vfd->v4l2_dev = &vpfe_dev->v4l2_dev;
|
||||
vfd->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
|
||||
snprintf(vfd->name, sizeof(vfd->name),
|
||||
"%s_V%d.%d.%d",
|
||||
CAPTURE_DRV_NAME,
|
||||
|
@ -1078,8 +1078,6 @@ static int vpif_querycap(struct file *file, void *priv,
|
||||
{
|
||||
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));
|
||||
snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
|
||||
dev_name(vpif_dev));
|
||||
@ -1466,6 +1464,7 @@ static int vpif_probe_complete(void)
|
||||
vdev->vfl_dir = VFL_DIR_RX;
|
||||
vdev->queue = q;
|
||||
vdev->lock = &common->lock;
|
||||
vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
|
||||
video_set_drvdata(&ch->video_dev, ch);
|
||||
err = video_register_device(vdev,
|
||||
VFL_TYPE_GRABBER, (j ? 1 : 0));
|
||||
|
@ -584,8 +584,6 @@ static int vpif_querycap(struct file *file, void *priv,
|
||||
{
|
||||
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));
|
||||
snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
|
||||
dev_name(vpif_dev));
|
||||
@ -1214,6 +1212,7 @@ static int vpif_probe_complete(void)
|
||||
vdev->vfl_dir = VFL_DIR_TX;
|
||||
vdev->queue = q;
|
||||
vdev->lock = &common->lock;
|
||||
vdev->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
|
||||
video_set_drvdata(&ch->video_dev, ch);
|
||||
err = video_register_device(vdev, VFL_TYPE_GRABBER,
|
||||
(j ? 3 : 2));
|
||||
|
Loading…
x
Reference in New Issue
Block a user