From e5e14815eb8dfb7c372bbce02bae5c3ff9b7e5d8 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Wed, 31 Mar 2010 12:29:26 -0300 Subject: [PATCH] --- yaml --- r: 192890 b: refs/heads/master c: ed3de6015a920c131fbcc770fb95097fde592d86 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/video/uvc/uvc_queue.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f79a66bb251b..1e414ff716cc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 35a00c41ea8b280cb629503c735daf20cdf0f9f8 +refs/heads/master: ed3de6015a920c131fbcc770fb95097fde592d86 diff --git a/trunk/drivers/media/video/uvc/uvc_queue.c b/trunk/drivers/media/video/uvc/uvc_queue.c index 4a925a31b0e0..133c78d113ac 100644 --- a/trunk/drivers/media/video/uvc/uvc_queue.c +++ b/trunk/drivers/media/video/uvc/uvc_queue.c @@ -388,8 +388,12 @@ unsigned int uvc_queue_poll(struct uvc_video_queue *queue, struct file *file, poll_wait(file, &buf->wait, wait); if (buf->state == UVC_BUF_STATE_DONE || - buf->state == UVC_BUF_STATE_ERROR) - mask |= POLLIN | POLLRDNORM; + buf->state == UVC_BUF_STATE_ERROR) { + if (queue->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) + mask |= POLLIN | POLLRDNORM; + else + mask |= POLLOUT | POLLWRNORM; + } done: mutex_unlock(&queue->mutex);