aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorThierry Reding <thierry.reding@avionic-design.de>2011-08-04 03:14:06 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-08-31 16:17:13 -0400
commit14f0915464f91574652afa95850e642abd205adc (patch)
tree5e440eff6b729fc0e32fb8c44d7e3357f889ad9b /drivers
parent9dac920708abb2981d02e6922fd797ef388db5ce (diff)
[media] tm6000: Flesh out the IRQ callback
This brings the IRQ callback implementation more in line with how other drivers do it. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/tm6000/tm6000-video.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/staging/tm6000/tm6000-video.c b/drivers/staging/tm6000/tm6000-video.c
index ba9cd247017..bef6023424a 100644
--- a/drivers/staging/tm6000/tm6000-video.c
+++ b/drivers/staging/tm6000/tm6000-video.c
@@ -513,9 +513,21 @@ static void tm6000_irq_callback(struct urb *urb)
513 struct tm6000_core *dev = container_of(dma_q, struct tm6000_core, vidq); 513 struct tm6000_core *dev = container_of(dma_q, struct tm6000_core, vidq);
514 int i; 514 int i;
515 515
516 if (!dev) 516 switch (urb->status) {
517 case 0:
518 case -ETIMEDOUT:
519 break;
520
521 case -ECONNRESET:
522 case -ENOENT:
523 case -ESHUTDOWN:
517 return; 524 return;
518 525
526 default:
527 tm6000_err("urb completion error %d.\n", urb->status);
528 break;
529 }
530
519 spin_lock(&dev->slock); 531 spin_lock(&dev->slock);
520 tm6000_isoc_copy(urb); 532 tm6000_isoc_copy(urb);
521 spin_unlock(&dev->slock); 533 spin_unlock(&dev->slock);