diff options
author | Thierry Reding <thierry.reding@avionic-design.de> | 2011-08-04 03:14:06 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-08-31 16:17:13 -0400 |
commit | 14f0915464f91574652afa95850e642abd205adc (patch) | |
tree | 5e440eff6b729fc0e32fb8c44d7e3357f889ad9b /drivers/staging | |
parent | 9dac920708abb2981d02e6922fd797ef388db5ce (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/staging')
-rw-r--r-- | drivers/staging/tm6000/tm6000-video.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/staging/tm6000/tm6000-video.c b/drivers/staging/tm6000/tm6000-video.c index ba9cd2470174..bef6023424af 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); |