diff options
author | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2009-11-11 19:28:40 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-12-11 20:55:23 +0100 |
commit | 5ad6a529c28db36010ec56c5ee8120addc712b51 (patch) | |
tree | 02eb9560267c0151dcdf7a14c72cb74f216f8e7b /drivers/usb/host/xhci-ring.c | |
parent | USB: xhci: Return -EPROTO on a split transaction error. (diff) | |
download | linux-5ad6a529c28db36010ec56c5ee8120addc712b51.tar.xz linux-5ad6a529c28db36010ec56c5ee8120addc712b51.zip |
USB: xhci: Return success for vendor-specific info codes.
An xHCI host controller manufacturer can choose to implement several
vendor-specific informational completion codes. These are all to be
treated like a successful transfer completion.
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/xhci-ring.c')
-rw-r--r-- | drivers/usb/host/xhci-ring.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 98437ffb065e..1549b9ceb91a 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -1153,6 +1153,16 @@ static int handle_tx_event(struct xhci_hcd *xhci, status = -ENOSR; break; default: + if (trb_comp_code >= 224 && trb_comp_code <= 255) { + /* Vendor defined "informational" completion code, + * treat as not-an-error. + */ + xhci_dbg(xhci, "Vendor defined info completion code %u\n", + trb_comp_code); + xhci_dbg(xhci, "Treating code as success.\n"); + status = 0; + break; + } xhci_warn(xhci, "ERROR Unknown event condition, HC probably busted\n"); urb = NULL; goto cleanup; |