Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c710f591 authored by Kazunori Kobayashi's avatar Kazunori Kobayashi Committed by Mauro Carvalho Chehab
Browse files

[media] soc_camera: Support VIDIOC_EXPBUF ioctl



This patch allows for exporting a dmabuf descriptor from soc_camera drivers.

Signed-off-by: default avatarKazunori Kobayashi <kkobayas@igel.co.jp>
Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 5d6de11c
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -437,6 +437,22 @@ static int soc_camera_prepare_buf(struct file *file, void *priv,
		return vb2_prepare_buf(&icd->vb2_vidq, b);
}

static int soc_camera_expbuf(struct file *file, void *priv,
			     struct v4l2_exportbuffer *p)
{
	struct soc_camera_device *icd = file->private_data;
	struct soc_camera_host *ici = to_soc_camera_host(icd->parent);

	if (icd->streamer != file)
		return -EBUSY;

	/* videobuf2 only */
	if (ici->ops->init_videobuf)
		return -EINVAL;
	else
		return vb2_expbuf(&icd->vb2_vidq, p);
}

/* Always entered with .host_lock held */
static int soc_camera_init_user_formats(struct soc_camera_device *icd)
{
@@ -2083,6 +2099,7 @@ static const struct v4l2_ioctl_ops soc_camera_ioctl_ops = {
	.vidioc_dqbuf		 = soc_camera_dqbuf,
	.vidioc_create_bufs	 = soc_camera_create_bufs,
	.vidioc_prepare_buf	 = soc_camera_prepare_buf,
	.vidioc_expbuf		 = soc_camera_expbuf,
	.vidioc_streamon	 = soc_camera_streamon,
	.vidioc_streamoff	 = soc_camera_streamoff,
	.vidioc_cropcap		 = soc_camera_cropcap,