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.grzesc...@pengutronix.de>

Acked-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>

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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to