diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-27 09:20:20 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-27 09:20:20 -0300 |
commit | a2f7e7dbf0f5aeb8842ac6c3e9acd151180d1975 (patch) | |
tree | 741bed0ecafa35596053d8e6debbce43691a0a39 /linux/drivers/media/video/stk-webcam.c | |
parent | 77b963e9fbc0911412eb7b86df83d976f81abf2d (diff) | |
parent | 3590a589476f8094edb2a807adaa699215c2d5ee (diff) | |
download | mediapointer-dvb-s2-a2f7e7dbf0f5aeb8842ac6c3e9acd151180d1975.tar.gz mediapointer-dvb-s2-a2f7e7dbf0f5aeb8842ac6c3e9acd151180d1975.tar.bz2 |
merge: http://linuxtv.org/hg/~mkrufky/mxl5007t
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/video/stk-webcam.c')
-rw-r--r-- | linux/drivers/media/video/stk-webcam.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/linux/drivers/media/video/stk-webcam.c b/linux/drivers/media/video/stk-webcam.c index 5daa2294d..e18745a67 100644 --- a/linux/drivers/media/video/stk-webcam.c +++ b/linux/drivers/media/video/stk-webcam.c @@ -446,18 +446,19 @@ static void stk_isoc_handler(struct urb *urb) fb->v4lbuf.bytesused = 0; fill = fb->buffer; } else if (fb->v4lbuf.bytesused == dev->frame_size) { - list_move_tail(dev->sio_avail.next, - &dev->sio_full); - wake_up(&dev->wait_frame); - if (list_empty(&dev->sio_avail)) { - (void) (printk_ratelimit() && - STK_ERROR("No buffer available\n")); - goto resubmit; + if (list_is_singular(&dev->sio_avail)) { + /* Always reuse the last buffer */ + fb->v4lbuf.bytesused = 0; + fill = fb->buffer; + } else { + list_move_tail(dev->sio_avail.next, + &dev->sio_full); + wake_up(&dev->wait_frame); + fb = list_first_entry(&dev->sio_avail, + struct stk_sio_buffer, list); + fb->v4lbuf.bytesused = 0; + fill = fb->buffer; } - fb = list_first_entry(&dev->sio_avail, - struct stk_sio_buffer, list); - fb->v4lbuf.bytesused = 0; - fill = fb->buffer; } } else { framelen -= 4; @@ -1359,8 +1360,6 @@ static void stk_v4l_dev_release(struct video_device *vd) static struct video_device stk_v4l_data = { .name = "stkwebcam", - .type = VFL_TYPE_GRABBER, - .type2 = VID_TYPE_CAPTURE, .minor = -1, .tvnorms = V4L2_STD_UNKNOWN, .current_norm = V4L2_STD_UNKNOWN, |