summaryrefslogtreecommitdiff
path: root/drivers/usb/host/imx21-hcd.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-10-17 00:16:41 +0400
committerMark Brown <broonie@linaro.org>2013-10-17 00:16:41 +0400
commit381bd9517a7e611871694689c67901d189cf6a62 (patch)
tree7f9492cbbb93039ef84722e518e2ca6e8ad0c364 /drivers/usb/host/imx21-hcd.c
parent01b9e0418689951c6ae4ba3b221bc42f49eb6407 (diff)
parentf6bd03a746271f298aa5bfb6e049b245757efaed (diff)
downloadlinux-381bd9517a7e611871694689c67901d189cf6a62.tar.xz
Merge remote-tracking branch 'spi/topic/trivial' into spi-atmel
Conflicts (trivial overlapping cleanups): drivers/spi/spi-atmel.c
Diffstat (limited to 'drivers/usb/host/imx21-hcd.c')
-rw-r--r--drivers/usb/host/imx21-hcd.c8
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,
i = DIV_ROUND_UP(wrap_frame(
cur_frame - urb->start_frame),
urb->interval);
- if (urb->transfer_flags & URB_ISO_ASAP) {
+
+ /* Treat underruns as if URB_ISO_ASAP was set */
+ if ((urb->transfer_flags & URB_ISO_ASAP) ||
+ i >= urb->number_of_packets) {
urb->start_frame = wrap_frame(urb->start_frame
+ i * urb->interval);
i = 0;
- } else if (i >= urb->number_of_packets) {
- ret = -EXDEV;
- goto alloc_dmem_failed;
}
}
}