aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorPete Zaitcev <zaitcev@redhat.com>2006-09-19 01:49:02 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2006-09-27 14:59:00 -0400
commit38e2bfc94e95dd6005fdaf40dfec0157396741da (patch)
tree1cc927239e3369ec7ce4920b1347dd8bc504bb2d /drivers/media
parentec17cf1cfe0b557210b27313bd584e9b5187d4ca (diff)
USB: Dealias -110 code (more complete)
The purpose of this patch is to split off the case when a device does not reply on the lower level (which is reported by HC hardware), and a case when the device accepted the request, but does not reply at upper level. This redefinition allows to diagnose issues easier, without asking the user if the -110 happened "immediately". The usbmon splits such cases already thanks to its timestamp, but it's not always available. I adjusted all drivers which I found affected (by searching for "urb"). Out of tree drivers may suffer a little bit, but I do not expect much breakage. At worst they may print a few messages. Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-urb.c1
-rw-r--r--drivers/media/dvb/ttusb-dec/ttusb_dec.c2
-rw-r--r--drivers/media/video/ov511.c7
-rw-r--r--drivers/media/video/pwc/pwc-if.c2
-rw-r--r--drivers/media/video/w9968cf.c7
5 files changed, 9 insertions, 10 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
index 9002f35aa952..88b283731bb8 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
@@ -80,7 +80,6 @@ static void dvb_usb_urb_complete(struct urb *urb, struct pt_regs *ptregs)
80 80
81 switch (urb->status) { 81 switch (urb->status) {
82 case 0: /* success */ 82 case 0: /* success */
83 case -ETIMEDOUT: /* NAK */
84 break; 83 break;
85 case -ECONNRESET: /* kill */ 84 case -ECONNRESET: /* kill */
86 case -ENOENT: 85 case -ENOENT:
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
index 6c1cb770bcf5..c9d663549dff 100644
--- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
@@ -215,7 +215,7 @@ static void ttusb_dec_handle_irq( struct urb *urb, struct pt_regs *regs)
215 case -ECONNRESET: 215 case -ECONNRESET:
216 case -ENOENT: 216 case -ENOENT:
217 case -ESHUTDOWN: 217 case -ESHUTDOWN:
218 case -ETIMEDOUT: 218 case -ETIME:
219 /* this urb is dead, cleanup */ 219 /* this urb is dead, cleanup */
220 dprintk("%s:urb shutting down with status: %d\n", 220 dprintk("%s:urb shutting down with status: %d\n",
221 __FUNCTION__, urb->status); 221 __FUNCTION__, urb->status);
diff --git a/drivers/media/video/ov511.c b/drivers/media/video/ov511.c
index 1b07a61c2ebb..5d8cd283fcd8 100644
--- a/drivers/media/video/ov511.c
+++ b/drivers/media/video/ov511.c
@@ -301,10 +301,11 @@ static struct symbolic_list senlist[] = {
301static struct symbolic_list urb_errlist[] = { 301static struct symbolic_list urb_errlist[] = {
302 { -ENOSR, "Buffer error (overrun)" }, 302 { -ENOSR, "Buffer error (overrun)" },
303 { -EPIPE, "Stalled (device not responding)" }, 303 { -EPIPE, "Stalled (device not responding)" },
304 { -EOVERFLOW, "Babble (bad cable?)" }, 304 { -EOVERFLOW, "Babble (device sends too much data)" },
305 { -EPROTO, "Bit-stuff error (bad cable?)" }, 305 { -EPROTO, "Bit-stuff error (bad cable?)" },
306 { -EILSEQ, "CRC/Timeout" }, 306 { -EILSEQ, "CRC/Timeout (bad cable?)" },
307 { -ETIMEDOUT, "NAK (device does not respond)" }, 307 { -ETIME, "Device does not respond to token" },
308 { -ETIMEDOUT, "Device does not respond to command" },
308 { -1, NULL } 309 { -1, NULL }
309}; 310};
310 311
diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
index d4703944df9c..53c4b5790d5c 100644
--- a/drivers/media/video/pwc/pwc-if.c
+++ b/drivers/media/video/pwc/pwc-if.c
@@ -711,7 +711,7 @@ static void pwc_isoc_handler(struct urb *urb, struct pt_regs *regs)
711 case -EOVERFLOW: errmsg = "Babble (bad cable?)"; break; 711 case -EOVERFLOW: errmsg = "Babble (bad cable?)"; break;
712 case -EPROTO: errmsg = "Bit-stuff error (bad cable?)"; break; 712 case -EPROTO: errmsg = "Bit-stuff error (bad cable?)"; break;
713 case -EILSEQ: errmsg = "CRC/Timeout (could be anything)"; break; 713 case -EILSEQ: errmsg = "CRC/Timeout (could be anything)"; break;
714 case -ETIMEDOUT: errmsg = "NAK (device does not respond)"; break; 714 case -ETIME: errmsg = "Device does not respond"; break;
715 } 715 }
716 PWC_DEBUG_FLOW("pwc_isoc_handler() called with status %d [%s].\n", urb->status, errmsg); 716 PWC_DEBUG_FLOW("pwc_isoc_handler() called with status %d [%s].\n", urb->status, errmsg);
717 /* Give up after a number of contiguous errors on the USB bus. 717 /* Give up after a number of contiguous errors on the USB bus.
diff --git a/drivers/media/video/w9968cf.c b/drivers/media/video/w9968cf.c
index 20f211b55ad4..2912326a5aef 100644
--- a/drivers/media/video/w9968cf.c
+++ b/drivers/media/video/w9968cf.c
@@ -586,15 +586,14 @@ static struct w9968cf_symbolic_list urb_errlist[] = {
586 { -EFBIG, "Too much ISO frames requested" }, 586 { -EFBIG, "Too much ISO frames requested" },
587 { -ENOSR, "Buffer error (overrun)" }, 587 { -ENOSR, "Buffer error (overrun)" },
588 { -EPIPE, "Specified endpoint is stalled (device not responding)"}, 588 { -EPIPE, "Specified endpoint is stalled (device not responding)"},
589 { -EOVERFLOW, "Babble (bad cable?)" }, 589 { -EOVERFLOW, "Babble (too much data)" },
590 { -EPROTO, "Bit-stuff error (bad cable?)" }, 590 { -EPROTO, "Bit-stuff error (bad cable?)" },
591 { -EILSEQ, "CRC/Timeout" }, 591 { -EILSEQ, "CRC/Timeout" },
592 { -ETIMEDOUT, "NAK (device does not respond)" }, 592 { -ETIME, "Device does not respond to token" },
593 { -ETIMEDOUT, "Device does not respond to command" },
593 { -1, NULL } 594 { -1, NULL }
594}; 595};
595 596
596
597
598/**************************************************************************** 597/****************************************************************************
599 * Memory management functions * 598 * Memory management functions *
600 ****************************************************************************/ 599 ****************************************************************************/