Index: uspace/lib/usbhost/src/endpoint.c
===================================================================
--- uspace/lib/usbhost/src/endpoint.c	(revision c21e6a5172262a245f7e805a5cb9885ee65024b4)
+++ uspace/lib/usbhost/src/endpoint.c	(revision af16ebece2cb3bc7592cffdd6e1a6da6698dc8db)
@@ -244,7 +244,15 @@
 	}
 
-	/** Limit transfers with reserved bandwidth to the amount reserved */
-	if (ep->direction == USB_DIRECTION_OUT && size > ep->max_transfer_size)
-		return ENOSPC;
+	/*
+	 * Limit transfers with reserved bandwidth to the amount reserved.
+	 * OUT transfers are rejected, IN can be just trimmed in advance.
+	 */
+	if ((ep->transfer_type == USB_TRANSFER_INTERRUPT || ep->transfer_type == USB_TRANSFER_ISOCHRONOUS) && size > ep->max_transfer_size) {
+		if (direction == USB_DIRECTION_OUT)
+			return ENOSPC;
+		else
+			size = ep->max_transfer_size;
+
+	}
 
 	/* Offline devices don't schedule transfers other than on EP0. */
