diff options
Diffstat (limited to 'drivers/usb/host/ehci-sched.c')
-rw-r--r-- | drivers/usb/host/ehci-sched.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c index 9d1babc7ff65..edd61ee90323 100644 --- a/drivers/usb/host/ehci-sched.c +++ b/drivers/usb/host/ehci-sched.c | |||
@@ -542,6 +542,7 @@ static int qh_link_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh) | |||
542 | } | 542 | } |
543 | } | 543 | } |
544 | qh->qh_state = QH_STATE_LINKED; | 544 | qh->qh_state = QH_STATE_LINKED; |
545 | qh->xacterrs = 0; | ||
545 | qh_get (qh); | 546 | qh_get (qh); |
546 | 547 | ||
547 | /* update per-qh bandwidth for usbfs */ | 548 | /* update per-qh bandwidth for usbfs */ |
@@ -1619,11 +1620,14 @@ itd_complete ( | |||
1619 | desc->status = -EPROTO; | 1620 | desc->status = -EPROTO; |
1620 | 1621 | ||
1621 | /* HC need not update length with this error */ | 1622 | /* HC need not update length with this error */ |
1622 | if (!(t & EHCI_ISOC_BABBLE)) | 1623 | if (!(t & EHCI_ISOC_BABBLE)) { |
1623 | desc->actual_length = EHCI_ITD_LENGTH (t); | 1624 | desc->actual_length = EHCI_ITD_LENGTH(t); |
1625 | urb->actual_length += desc->actual_length; | ||
1626 | } | ||
1624 | } else if (likely ((t & EHCI_ISOC_ACTIVE) == 0)) { | 1627 | } else if (likely ((t & EHCI_ISOC_ACTIVE) == 0)) { |
1625 | desc->status = 0; | 1628 | desc->status = 0; |
1626 | desc->actual_length = EHCI_ITD_LENGTH (t); | 1629 | desc->actual_length = EHCI_ITD_LENGTH(t); |
1630 | urb->actual_length += desc->actual_length; | ||
1627 | } else { | 1631 | } else { |
1628 | /* URB was too late */ | 1632 | /* URB was too late */ |
1629 | desc->status = -EXDEV; | 1633 | desc->status = -EXDEV; |
@@ -2014,7 +2018,8 @@ sitd_complete ( | |||
2014 | desc->status = -EPROTO; | 2018 | desc->status = -EPROTO; |
2015 | } else { | 2019 | } else { |
2016 | desc->status = 0; | 2020 | desc->status = 0; |
2017 | desc->actual_length = desc->length - SITD_LENGTH (t); | 2021 | desc->actual_length = desc->length - SITD_LENGTH(t); |
2022 | urb->actual_length += desc->actual_length; | ||
2018 | } | 2023 | } |
2019 | stream->depth -= stream->interval << 3; | 2024 | stream->depth -= stream->interval << 3; |
2020 | 2025 | ||