diff options
Diffstat (limited to 'drivers/media/usb/uvc/uvc_queue.c')
| -rw-r--r-- | drivers/media/usb/uvc/uvc_queue.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/media/usb/uvc/uvc_queue.c b/drivers/media/usb/uvc/uvc_queue.c index 5577381b5bf..18a91fae6bc 100644 --- a/drivers/media/usb/uvc/uvc_queue.c +++ b/drivers/media/usb/uvc/uvc_queue.c @@ -122,21 +122,27 @@ static struct vb2_ops uvc_queue_qops = {  	.buf_finish = uvc_buffer_finish,  }; -void uvc_queue_init(struct uvc_video_queue *queue, enum v4l2_buf_type type, +int uvc_queue_init(struct uvc_video_queue *queue, enum v4l2_buf_type type,  		    int drop_corrupted)  { +	int ret; +  	queue->queue.type = type;  	queue->queue.io_modes = VB2_MMAP | VB2_USERPTR;  	queue->queue.drv_priv = queue;  	queue->queue.buf_struct_size = sizeof(struct uvc_buffer);  	queue->queue.ops = &uvc_queue_qops;  	queue->queue.mem_ops = &vb2_vmalloc_memops; -	vb2_queue_init(&queue->queue); +	ret = vb2_queue_init(&queue->queue); +	if (ret) +		return ret;  	mutex_init(&queue->mutex);  	spin_lock_init(&queue->irqlock);  	INIT_LIST_HEAD(&queue->irqqueue);  	queue->flags = drop_corrupted ? UVC_QUEUE_DROP_CORRUPTED : 0; + +	return 0;  }  /* -----------------------------------------------------------------------------  |