diff options
-rw-r--r-- | drivers/usb/host/imx21-hcd.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/host/imx21-hcd.c b/drivers/usb/host/imx21-hcd.c index 60a5de505ca1..adb01d950a16 100644 --- a/drivers/usb/host/imx21-hcd.c +++ b/drivers/usb/host/imx21-hcd.c | |||
@@ -824,13 +824,13 @@ static int imx21_hc_urb_enqueue_isoc(struct usb_hcd *hcd, | |||
824 | i = DIV_ROUND_UP(wrap_frame( | 824 | i = DIV_ROUND_UP(wrap_frame( |
825 | cur_frame - urb->start_frame), | 825 | cur_frame - urb->start_frame), |
826 | urb->interval); | 826 | urb->interval); |
827 | if (urb->transfer_flags & URB_ISO_ASAP) { | 827 | |
828 | /* Treat underruns as if URB_ISO_ASAP was set */ | ||
829 | if ((urb->transfer_flags & URB_ISO_ASAP) || | ||
830 | i >= urb->number_of_packets) { | ||
828 | urb->start_frame = wrap_frame(urb->start_frame | 831 | urb->start_frame = wrap_frame(urb->start_frame |
829 | + i * urb->interval); | 832 | + i * urb->interval); |
830 | i = 0; | 833 | i = 0; |
831 | } else if (i >= urb->number_of_packets) { | ||
832 | ret = -EXDEV; | ||
833 | goto alloc_dmem_failed; | ||
834 | } | 834 | } |
835 | } | 835 | } |
836 | } | 836 | } |