summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller/musb_otg.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/usb/controller/musb_otg.c')
-rw-r--r--sys/dev/usb/controller/musb_otg.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/usb/controller/musb_otg.c b/sys/dev/usb/controller/musb_otg.c
index 39ff968..289ba56 100644
--- a/sys/dev/usb/controller/musb_otg.c
+++ b/sys/dev/usb/controller/musb_otg.c
@@ -2403,7 +2403,8 @@ musbotg_setup_standard_chain(struct usb_xfer *xfer)
temp.td = NULL;
temp.td_next = xfer->td_start[0];
temp.offset = 0;
- temp.setup_alt_next = xfer->flags_int.short_frames_ok;
+ temp.setup_alt_next = xfer->flags_int.short_frames_ok ||
+ xfer->flags_int.isochronous_xfr;
temp.did_stall = !xfer->flags_int.control_stall;
temp.channel = -1;
temp.dev_addr = dev_addr;
@@ -2714,7 +2715,8 @@ musbotg_standard_done_sub(struct usb_xfer *xfer)
}
/* Check for short transfer */
if (len > 0) {
- if (xfer->flags_int.short_frames_ok) {
+ if (xfer->flags_int.short_frames_ok ||
+ xfer->flags_int.isochronous_xfr) {
/* follow alt next */
if (td->alt_next) {
td = td->obj_next;
OpenPOWER on IntegriCloud