diff options
author | Pete Zaitcev <zaitcev@redhat.com> | 2006-09-19 01:49:02 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-09-27 14:59:00 -0400 |
commit | 38e2bfc94e95dd6005fdaf40dfec0157396741da (patch) | |
tree | 1cc927239e3369ec7ce4920b1347dd8bc504bb2d /drivers/media | |
parent | ec17cf1cfe0b557210b27313bd584e9b5187d4ca (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.c | 1 | ||||
-rw-r--r-- | drivers/media/dvb/ttusb-dec/ttusb_dec.c | 2 | ||||
-rw-r--r-- | drivers/media/video/ov511.c | 7 | ||||
-rw-r--r-- | drivers/media/video/pwc/pwc-if.c | 2 | ||||
-rw-r--r-- | drivers/media/video/w9968cf.c | 7 |
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[] = { | |||
301 | static struct symbolic_list urb_errlist[] = { | 301 | static 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 | ****************************************************************************/ |