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));
|
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)
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
|
|
||||||
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)
|
|||||||
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,
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
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,
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
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));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user