Commit ec6d67e3 authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman

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: default avatarAlan Stern <stern@rowland.harvard.edu>
Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent f092c240
...@@ -1619,11 +1619,14 @@ itd_complete ( ...@@ -1619,11 +1619,14 @@ itd_complete (
desc->status = -EPROTO; desc->status = -EPROTO;
/* HC need not update length with this error */ /* HC need not update length with this error */
if (!(t & EHCI_ISOC_BABBLE)) if (!(t & EHCI_ISOC_BABBLE)) {
desc->actual_length = EHCI_ITD_LENGTH (t); desc->actual_length = EHCI_ITD_LENGTH(t);
urb->actual_length += desc->actual_length;
}
} else if (likely ((t & EHCI_ISOC_ACTIVE) == 0)) { } else if (likely ((t & EHCI_ISOC_ACTIVE) == 0)) {
desc->status = 0; desc->status = 0;
desc->actual_length = EHCI_ITD_LENGTH (t); desc->actual_length = EHCI_ITD_LENGTH(t);
urb->actual_length += desc->actual_length;
} else { } else {
/* URB was too late */ /* URB was too late */
desc->status = -EXDEV; desc->status = -EXDEV;
...@@ -2014,7 +2017,8 @@ sitd_complete ( ...@@ -2014,7 +2017,8 @@ sitd_complete (
desc->status = -EPROTO; desc->status = -EPROTO;
} else { } else {
desc->status = 0; desc->status = 0;
desc->actual_length = desc->length - SITD_LENGTH (t); desc->actual_length = desc->length - SITD_LENGTH(t);
urb->actual_length += desc->actual_length;
} }
stream->depth -= stream->interval << 3; stream->depth -= stream->interval << 3;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment