diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-13 13:40:36 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-24 13:08:00 -0400 |
commit | ca21d2dc945c224c3f121f6b5f2436877f029eed (patch) | |
tree | b1a4c9cd22b1893785c08ba2dbf133d9e8603107 /drivers/media/video/em28xx/em28xx-video.c | |
parent | 47625da2ab5e98728cdefbd344fb1493c26769ad (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.c | 6 |
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); |