Re: [PATCH] usb: gadget/uvc: Implement videobuf2 .wait_prepare and .wait_finish operations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michael,

Thanks for the patch.

On Saturday 09 February 2013 00:54:54 Michael Grzeschik wrote:
> Those optional operations are used to release and reacquire the queue
> lock when videobuf2 needs to perform operations that sleep for a long
> time, such as waiting for a buffer to be complete. Implement them to
> avoid blocking qbuf or streamoff calls when a dqbuf is in progress.
> 
> Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>

Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

I've taken the patch in my tree and will wait for v4 of [1] before pushing it 
upstream.

> ---
> This patch is based on the host side patch [1] and makes
> sense on the device side of the uvc framework as well.
> 
> [1] http://patchwork.linuxtv.org/patch/16379/
> 
>  drivers/usb/gadget/uvc_queue.c |   16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/drivers/usb/gadget/uvc_queue.c b/drivers/usb/gadget/uvc_queue.c
> index bd20fab..a9ddf24 100644
> --- a/drivers/usb/gadget/uvc_queue.c
> +++ b/drivers/usb/gadget/uvc_queue.c
> @@ -103,10 +103,26 @@ static void uvc_buffer_queue(struct vb2_buffer *vb)
>  	spin_unlock_irqrestore(&queue->irqlock, flags);
>  }
> 
> +static void uvc_wait_prepare(struct vb2_queue *vq)
> +{
> +	struct uvc_video_queue *queue = vb2_get_drv_priv(vq);
> +
> +	mutex_unlock(&queue->mutex);
> +}
> +
> +static void uvc_wait_finish(struct vb2_queue *vq)
> +{
> +	struct uvc_video_queue *queue = vb2_get_drv_priv(vq);
> +
> +	mutex_lock(&queue->mutex);
> +}
> +
>  static struct vb2_ops uvc_queue_qops = {
>  	.queue_setup = uvc_queue_setup,
>  	.buf_prepare = uvc_buffer_prepare,
>  	.buf_queue = uvc_buffer_queue,
> +	.wait_prepare = uvc_wait_prepare,
> +	.wait_finish = uvc_wait_finish,
>  };
> 
>  static int uvc_queue_init(struct uvc_video_queue *queue,

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux