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/video | |
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/video')
-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 |
3 files changed, 8 insertions, 8 deletions
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 | ****************************************************************************/ |