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>
This commit is contained in:

zatwierdzone przez
Greg Kroah-Hartman

rodzic
ec17cf1cfe
commit
38e2bfc94e
@@ -233,7 +233,7 @@ static const int cc_to_error[16] = {
|
||||
/* Bit Stuff */ -EPROTO,
|
||||
/* Data Togg */ -EILSEQ,
|
||||
/* Stall */ -EPIPE,
|
||||
/* DevNotResp */ -ETIMEDOUT,
|
||||
/* DevNotResp */ -ETIME,
|
||||
/* PIDCheck */ -EPROTO,
|
||||
/* UnExpPID */ -EPROTO,
|
||||
/* DataOver */ -EOVERFLOW,
|
||||
|
@@ -159,7 +159,7 @@ static const int cc_to_error [16] = {
|
||||
/* Bit Stuff */ -EPROTO,
|
||||
/* Data Togg */ -EILSEQ,
|
||||
/* Stall */ -EPIPE,
|
||||
/* DevNotResp */ -ETIMEDOUT,
|
||||
/* DevNotResp */ -ETIME,
|
||||
/* PIDCheck */ -EPROTO,
|
||||
/* UnExpPID */ -EPROTO,
|
||||
/* DataOver */ -EOVERFLOW,
|
||||
|
@@ -597,7 +597,7 @@ done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank, struct pt_regs *regs)
|
||||
/* error? retry, until "3 strikes" */
|
||||
} else if (++ep->error_count >= 3) {
|
||||
if (status & SL11H_STATMASK_TMOUT)
|
||||
urbstat = -ETIMEDOUT;
|
||||
urbstat = -ETIME;
|
||||
else if (status & SL11H_STATMASK_OVF)
|
||||
urbstat = -EOVERFLOW;
|
||||
else
|
||||
|
Reference in New Issue
Block a user