DM USB: add code for error processing

add error processing logic for error code from libusb.

Change-Id: I39883ddcb0ad80bcd8304b887cd4d2f32da3fa22
Tracked-On:
Signed-off-by: Xiaoguang Wu <xiaoguang.wu@intel.com>
Reviewed-by: Liang Yang <liang3.yang@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
This commit is contained in:
Xiaoguang Wu 2018-07-13 12:44:50 +08:00 committed by lijinxia
parent 00fbfd6da3
commit 7431a9021c
2 changed files with 22 additions and 5 deletions

View File

@ -2173,10 +2173,19 @@ pci_xhci_xfer_complete(struct pci_xhci_vdev *xdev,
XHCI_ST_EPCTX_HALTED;
err = XHCI_TRB_ERROR_STALL;
break;
case USB_ERR_SHORT_XFER:
err = XHCI_TRB_ERROR_SHORT_PKT;
break;
case USB_ERR_TIMEOUT:
case USB_ERR_IOERROR:
err = XHCI_TRB_ERROR_XACT;
break;
case USB_ERR_BAD_BUFSIZE:
err = XHCI_TRB_ERROR_BABBLE;
break;
case USB_ERR_NORMAL_COMPLETION:
break;
default:
/* FIXME: should process other failures */
UPRINTF(LFTL, "unknown error %d\r\n", xfer->status);
}

View File

@ -62,13 +62,21 @@ usb_dev_comp_req(struct libusb_transfer *libusb_xfer)
xfer->status = USB_ERR_STALLED;
goto out;
case LIBUSB_TRANSFER_NO_DEVICE:
/* avoid short packet warnings when devices are plugged out. */
xfer->status = USB_ERR_SHORT_XFER;
goto out;
case LIBUSB_TRANSFER_ERROR:
case LIBUSB_TRANSFER_TIMED_OUT:
xfer->status = USB_ERR_STALLED;
goto out;
case LIBUSB_TRANSFER_CANCELLED:
xfer->status = USB_ERR_IOERROR;
goto out;
case LIBUSB_TRANSFER_TIMED_OUT:
xfer->status = USB_ERR_TIMEOUT;
goto out;
case LIBUSB_TRANSFER_OVERFLOW:
/* FIXME: should treat every failure properly */
UPRINTF(LWRN, "failure: %x\r\n", libusb_xfer->status);
break;
xfer->status = USB_ERR_BAD_BUFSIZE;
goto out;
case LIBUSB_TRANSFER_COMPLETED:
break;
default: