Don't check transaction active flag as it's not updated and creates problems for usbserial

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-07-18 12:53:08 +02:00
parent 7b5502f30b
commit cbf41813b3

View file

@ -512,42 +512,37 @@ grub_uhci_transfer (grub_usb_controller_t dev,
grub_dprintf ("uhci", "t status=0x%02x\n", errtd->ctrl_status); grub_dprintf ("uhci", "t status=0x%02x\n", errtd->ctrl_status);
/* Check if the TD is not longer active. */ /* Check if the endpoint is stalled. */
if (! (errtd->ctrl_status & (1 << 23))) if (errtd->ctrl_status & (1 << 22))
{ err = GRUB_USB_ERR_STALL;
grub_dprintf ("uhci", ">>t status=0x%02x\n", errtd->ctrl_status);
/* Check if the endpoint is stalled. */ /* Check if an error related to the data buffer occurred. */
if (errtd->ctrl_status & (1 << 22)) if (errtd->ctrl_status & (1 << 21))
err = GRUB_USB_ERR_STALL; err = GRUB_USB_ERR_DATA;
/* Check if an error related to the data buffer occurred. */ /* Check if a babble error occurred. */
if (errtd->ctrl_status & (1 << 21)) if (errtd->ctrl_status & (1 << 20))
err = GRUB_USB_ERR_DATA; err = GRUB_USB_ERR_BABBLE;
/* Check if a babble error occurred. */ /* Check if a NAK occurred. */
if (errtd->ctrl_status & (1 << 20)) if (errtd->ctrl_status & (1 << 19))
err = GRUB_USB_ERR_BABBLE; err = GRUB_USB_ERR_NAK;
/* Check if a NAK occurred. */ /* Check if a timeout occurred. */
if (errtd->ctrl_status & (1 << 19)) if (errtd->ctrl_status & (1 << 18))
err = GRUB_USB_ERR_NAK; err = GRUB_USB_ERR_TIMEOUT;
/* Check if a timeout occurred. */ /* Check if a bitstuff error occurred. */
if (errtd->ctrl_status & (1 << 18)) if (errtd->ctrl_status & (1 << 17))
err = GRUB_USB_ERR_TIMEOUT; err = GRUB_USB_ERR_BITSTUFF;
/* Check if a bitstuff error occurred. */ if (err)
if (errtd->ctrl_status & (1 << 17)) goto fail;
err = GRUB_USB_ERR_BITSTUFF;
if (err) /* Fall through, no errors occurred, so the QH might be
goto fail; updated. */
grub_dprintf ("uhci", "transaction fallthrough\n");
/* Fall through, no errors occurred, so the QH might be
updated. */
grub_dprintf ("uhci", "transaction fallthrough\n");
}
if (grub_get_time_ms () > endtime) if (grub_get_time_ms () > endtime)
{ {
err = GRUB_USB_ERR_STALL; err = GRUB_USB_ERR_STALL;