Commit 1ddc8a97 authored by Boris Brezillon's avatar Boris Brezillon Committed by Mauro Carvalho Chehab
Browse files

media: v4l2: Make sure all drivers set _MPLANE caps in vdev->device_caps



This is needed if we want the core to be able to check _MPLANE support
without having to call the ->vidioc_querycap() hook.

Signed-off-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 0864c9ce
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -298,8 +298,6 @@ static int gsc_m2m_querycap(struct file *file, void *fh,
	strscpy(cap->card, GSC_MODULE_NAME " gscaler", sizeof(cap->card));
	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
		 dev_name(&gsc->pdev->dev));
	cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M_MPLANE;
	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
	return 0;
}

@@ -763,6 +761,8 @@ int gsc_register_m2m_device(struct gsc_dev *gsc)
	gsc->vdev.lock		= &gsc->lock;
	gsc->vdev.vfl_dir	= VFL_DIR_M2M;
	gsc->vdev.v4l2_dev	= &gsc->v4l2_dev;
	gsc->vdev.device_caps	= V4L2_CAP_STREAMING |
				  V4L2_CAP_VIDEO_M2M_MPLANE;
	snprintf(gsc->vdev.name, sizeof(gsc->vdev.name), "%s.%d:m2m",
					GSC_MODULE_NAME, gsc->id);

+1 −4
Original line number Diff line number Diff line
@@ -37,15 +37,12 @@ struct v4l2_subdev *fimc_find_remote_sensor(struct media_entity *entity)
}
EXPORT_SYMBOL(fimc_find_remote_sensor);

void __fimc_vidioc_querycap(struct device *dev, struct v4l2_capability *cap,
						unsigned int caps)
void __fimc_vidioc_querycap(struct device *dev, struct v4l2_capability *cap)
{
	strscpy(cap->driver, dev->driver->name, sizeof(cap->driver));
	strscpy(cap->card, dev->driver->name, sizeof(cap->card));
	snprintf(cap->bus_info, sizeof(cap->bus_info),
				"platform:%s", dev_name(dev));
	cap->device_caps = caps;
	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
}
EXPORT_SYMBOL(__fimc_vidioc_querycap);

+1 −2
Original line number Diff line number Diff line
@@ -12,5 +12,4 @@
#include <media/v4l2-subdev.h>

struct v4l2_subdev *fimc_find_remote_sensor(struct media_entity *entity);
void __fimc_vidioc_querycap(struct device *dev, struct v4l2_capability *cap,
			    unsigned int caps);
void __fimc_vidioc_querycap(struct device *dev, struct v4l2_capability *cap);
+2 −2
Original line number Diff line number Diff line
@@ -728,8 +728,7 @@ static int fimc_cap_querycap(struct file *file, void *priv,
{
	struct fimc_dev *fimc = video_drvdata(file);

	__fimc_vidioc_querycap(&fimc->pdev->dev, cap, V4L2_CAP_STREAMING |
					V4L2_CAP_VIDEO_CAPTURE_MPLANE);
	__fimc_vidioc_querycap(&fimc->pdev->dev, cap);
	return 0;
}

@@ -1765,6 +1764,7 @@ static int fimc_register_capture_device(struct fimc_dev *fimc,
	vfd->release	= video_device_release_empty;
	vfd->queue	= q;
	vfd->lock	= &fimc->lock;
	vfd->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE_MPLANE;

	video_set_drvdata(vfd, fimc);
	vid_cap = &fimc->vid_cap;
+2 −1
Original line number Diff line number Diff line
@@ -349,7 +349,7 @@ static int isp_video_querycap(struct file *file, void *priv,
{
	struct fimc_isp *isp = video_drvdata(file);

	__fimc_vidioc_querycap(&isp->pdev->dev, cap, V4L2_CAP_STREAMING);
	__fimc_vidioc_querycap(&isp->pdev->dev, cap);
	return 0;
}

@@ -614,6 +614,7 @@ int fimc_isp_video_device_register(struct fimc_isp *isp,
	vdev->minor = -1;
	vdev->release = video_device_release_empty;
	vdev->lock = &isp->video_lock;
	vdev->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE_MPLANE;

	iv->pad.flags = MEDIA_PAD_FL_SINK;
	ret = media_entity_pads_init(&vdev->entity, 1, &iv->pad);
Loading