USB: EHCI: report actual_length for iso transfers

This patch (as1259b) makes ehci-hcd return the total number of bytes
transferred in urb->actual_length for Isochronous transfers.
Until now, the actual_length value was unaccountably left at 0.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by Alan Stern and committed by Greg Kroah-Hartman ec6d67e3 f092c240

+8 -4
+8 -4
drivers/usb/host/ehci-sched.c
··· 1619 1619 desc->status = -EPROTO; 1620 1620 1621 1621 /* HC need not update length with this error */ 1622 - if (!(t & EHCI_ISOC_BABBLE)) 1623 - desc->actual_length = EHCI_ITD_LENGTH (t); 1622 + if (!(t & EHCI_ISOC_BABBLE)) { 1623 + desc->actual_length = EHCI_ITD_LENGTH(t); 1624 + urb->actual_length += desc->actual_length; 1625 + } 1624 1626 } else if (likely ((t & EHCI_ISOC_ACTIVE) == 0)) { 1625 1627 desc->status = 0; 1626 - desc->actual_length = EHCI_ITD_LENGTH (t); 1628 + desc->actual_length = EHCI_ITD_LENGTH(t); 1629 + urb->actual_length += desc->actual_length; 1627 1630 } else { 1628 1631 /* URB was too late */ 1629 1632 desc->status = -EXDEV; ··· 2017 2014 desc->status = -EPROTO; 2018 2015 } else { 2019 2016 desc->status = 0; 2020 - desc->actual_length = desc->length - SITD_LENGTH (t); 2017 + desc->actual_length = desc->length - SITD_LENGTH(t); 2018 + urb->actual_length += desc->actual_length; 2021 2019 } 2022 2020 stream->depth -= stream->interval << 3; 2023 2021