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

Commit 69756693 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[media] sh_vou: convert to unlocked_ioctl

parent 20aa5bb9
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ struct sh_vou_device {
	int pix_idx;
	struct videobuf_buffer *active;
	enum sh_vou_status status;
	struct mutex fop_lock;
};

struct sh_vou_file {
@@ -235,7 +236,7 @@ static void free_buffer(struct videobuf_queue *vq, struct videobuf_buffer *vb)
	vb->state = VIDEOBUF_NEEDS_INIT;
}

/* Locking: caller holds vq->vb_lock mutex */
/* Locking: caller holds fop_lock mutex */
static int sh_vou_buf_setup(struct videobuf_queue *vq, unsigned int *count,
			    unsigned int *size)
{
@@ -257,7 +258,7 @@ static int sh_vou_buf_setup(struct videobuf_queue *vq, unsigned int *count,
	return 0;
}

/* Locking: caller holds vq->vb_lock mutex */
/* Locking: caller holds fop_lock mutex */
static int sh_vou_buf_prepare(struct videobuf_queue *vq,
			      struct videobuf_buffer *vb,
			      enum v4l2_field field)
@@ -306,7 +307,7 @@ static int sh_vou_buf_prepare(struct videobuf_queue *vq,
	return 0;
}

/* Locking: caller holds vq->vb_lock mutex and vq->irqlock spinlock */
/* Locking: caller holds fop_lock mutex and vq->irqlock spinlock */
static void sh_vou_buf_queue(struct videobuf_queue *vq,
			     struct videobuf_buffer *vb)
{
@@ -1190,7 +1191,7 @@ static int sh_vou_open(struct file *file)
				       V4L2_BUF_TYPE_VIDEO_OUTPUT,
				       V4L2_FIELD_NONE,
				       sizeof(struct videobuf_buffer), vdev,
				       NULL);
				       &vou_dev->fop_lock);

	return 0;
}
@@ -1292,7 +1293,7 @@ static const struct v4l2_file_operations sh_vou_fops = {
	.owner		= THIS_MODULE,
	.open		= sh_vou_open,
	.release	= sh_vou_release,
	.ioctl		= video_ioctl2,
	.unlocked_ioctl	= video_ioctl2,
	.mmap		= sh_vou_mmap,
	.poll		= sh_vou_poll,
};
@@ -1331,6 +1332,7 @@ static int __devinit sh_vou_probe(struct platform_device *pdev)

	INIT_LIST_HEAD(&vou_dev->queue);
	spin_lock_init(&vou_dev->lock);
	mutex_init(&vou_dev->fop_lock);
	atomic_set(&vou_dev->use_count, 0);
	vou_dev->pdata = vou_pdata;
	vou_dev->status = SH_VOU_IDLE;
@@ -1388,6 +1390,7 @@ static int __devinit sh_vou_probe(struct platform_device *pdev)
		vdev->tvnorms |= V4L2_STD_PAL;
	vdev->v4l2_dev = &vou_dev->v4l2_dev;
	vdev->release = video_device_release;
	vdev->lock = &vou_dev->fop_lock;

	vou_dev->vdev = vdev;
	video_set_drvdata(vdev, vou_dev);