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/usb/input | |
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/usb/input')
-rw-r--r-- | drivers/usb/input/hid-core.c | 3 | ||||
-rw-r--r-- | drivers/usb/input/itmtouch.c | 2 | ||||
-rw-r--r-- | drivers/usb/input/mtouchusb.c | 2 | ||||
-rw-r--r-- | drivers/usb/input/touchkitusb.c | 2 | ||||
-rw-r--r-- | drivers/usb/input/usbtouchscreen.c | 2 |
5 files changed, 6 insertions, 5 deletions
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c index fc5b662ea177..2a3e9e9b4b3d 100644 --- a/drivers/usb/input/hid-core.c +++ b/drivers/usb/input/hid-core.c | |||
@@ -1023,7 +1023,8 @@ static void hid_irq_in(struct urb *urb, struct pt_regs *regs) | |||
1023 | return; | 1023 | return; |
1024 | case -EILSEQ: /* protocol error or unplug */ | 1024 | case -EILSEQ: /* protocol error or unplug */ |
1025 | case -EPROTO: /* protocol error or unplug */ | 1025 | case -EPROTO: /* protocol error or unplug */ |
1026 | case -ETIMEDOUT: /* NAK */ | 1026 | case -ETIME: /* protocol error or unplug */ |
1027 | case -ETIMEDOUT: /* Should never happen, but... */ | ||
1027 | clear_bit(HID_IN_RUNNING, &hid->iofl); | 1028 | clear_bit(HID_IN_RUNNING, &hid->iofl); |
1028 | hid_io_error(hid); | 1029 | hid_io_error(hid); |
1029 | return; | 1030 | return; |
diff --git a/drivers/usb/input/itmtouch.c b/drivers/usb/input/itmtouch.c index 86acb5f1907a..61966d719ca3 100644 --- a/drivers/usb/input/itmtouch.c +++ b/drivers/usb/input/itmtouch.c | |||
@@ -87,7 +87,7 @@ static void itmtouch_irq(struct urb *urb, struct pt_regs *regs) | |||
87 | case 0: | 87 | case 0: |
88 | /* success */ | 88 | /* success */ |
89 | break; | 89 | break; |
90 | case -ETIMEDOUT: | 90 | case -ETIME: |
91 | /* this urb is timing out */ | 91 | /* this urb is timing out */ |
92 | dbg("%s - urb timed out - was the device unplugged?", | 92 | dbg("%s - urb timed out - was the device unplugged?", |
93 | __FUNCTION__); | 93 | __FUNCTION__); |
diff --git a/drivers/usb/input/mtouchusb.c b/drivers/usb/input/mtouchusb.c index a9ccda8810e0..5dce951f2751 100644 --- a/drivers/usb/input/mtouchusb.c +++ b/drivers/usb/input/mtouchusb.c | |||
@@ -107,7 +107,7 @@ static void mtouchusb_irq(struct urb *urb, struct pt_regs *regs) | |||
107 | case 0: | 107 | case 0: |
108 | /* success */ | 108 | /* success */ |
109 | break; | 109 | break; |
110 | case -ETIMEDOUT: | 110 | case -ETIME: |
111 | /* this urb is timing out */ | 111 | /* this urb is timing out */ |
112 | dbg("%s - urb timed out - was the device unplugged?", | 112 | dbg("%s - urb timed out - was the device unplugged?", |
113 | __FUNCTION__); | 113 | __FUNCTION__); |
diff --git a/drivers/usb/input/touchkitusb.c b/drivers/usb/input/touchkitusb.c index 0149043ffb97..30b9f820e7a8 100644 --- a/drivers/usb/input/touchkitusb.c +++ b/drivers/usb/input/touchkitusb.c | |||
@@ -201,7 +201,7 @@ static void touchkit_irq(struct urb *urb, struct pt_regs *regs) | |||
201 | case 0: | 201 | case 0: |
202 | /* success */ | 202 | /* success */ |
203 | break; | 203 | break; |
204 | case -ETIMEDOUT: | 204 | case -ETIME: |
205 | /* this urb is timing out */ | 205 | /* this urb is timing out */ |
206 | dbg("%s - urb timed out - was the device unplugged?", | 206 | dbg("%s - urb timed out - was the device unplugged?", |
207 | __FUNCTION__); | 207 | __FUNCTION__); |
diff --git a/drivers/usb/input/usbtouchscreen.c b/drivers/usb/input/usbtouchscreen.c index a1be7840ea02..4640d1000d83 100644 --- a/drivers/usb/input/usbtouchscreen.c +++ b/drivers/usb/input/usbtouchscreen.c | |||
@@ -508,7 +508,7 @@ static void usbtouch_irq(struct urb *urb, struct pt_regs *regs) | |||
508 | case 0: | 508 | case 0: |
509 | /* success */ | 509 | /* success */ |
510 | break; | 510 | break; |
511 | case -ETIMEDOUT: | 511 | case -ETIME: |
512 | /* this urb is timing out */ | 512 | /* this urb is timing out */ |
513 | dbg("%s - urb timed out - was the device unplugged?", | 513 | dbg("%s - urb timed out - was the device unplugged?", |
514 | __FUNCTION__); | 514 | __FUNCTION__); |