aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/em28xx/em28xx-video.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2008-04-13 13:40:36 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:08:00 -0400
commitca21d2dc945c224c3f121f6b5f2436877f029eed (patch)
treeb1a4c9cd22b1893785c08ba2dbf133d9e8603107 /drivers/media/video/em28xx/em28xx-video.c
parent47625da2ab5e98728cdefbd344fb1493c26769ad (diff)
V4L/DVB (7544): em28xx: Fix timeout code
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-video.c')
-rw-r--r--drivers/media/video/em28xx/em28xx-video.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index ecc146bfc022..229d154424ff 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -452,6 +452,7 @@ static void em28xx_uninit_isoc(struct em28xx *dev)
452 452
453 dev->isoc_ctl.num_bufs=0; 453 dev->isoc_ctl.num_bufs=0;
454 454
455 del_timer(&dev->vidq.timeout);
455 em28xx_capture_start(dev, 0); 456 em28xx_capture_start(dev, 0);
456} 457}
457 458
@@ -575,9 +576,8 @@ static void em28xx_vid_timeout(unsigned long data)
575 unsigned long flags; 576 unsigned long flags;
576 577
577 spin_lock_irqsave(&dev->slock,flags); 578 spin_lock_irqsave(&dev->slock,flags);
578 while (!list_empty(&vidq->active)) { 579
579 buf = list_entry(vidq->active.next, struct em28xx_buffer, 580 list_for_each_entry(buf, vidq->active.next, vb.queue) {
580 vb.queue);
581 list_del(&buf->vb.queue); 581 list_del(&buf->vb.queue);
582 buf->vb.state = VIDEOBUF_ERROR; 582 buf->vb.state = VIDEOBUF_ERROR;
583 wake_up(&buf->vb.done); 583 wake_up(&buf->vb.done);