|
|
@@ -153,8 +153,7 @@ void _hw_endpoint_xfer_start(struct hw_endpoint *ep, uint8_t *buffer, uint16_t t
|
|
|
// Fill in info now that we're kicking off the hw
|
|
|
ep->total_len = total_len;
|
|
|
ep->len = 0;
|
|
|
- // FIXME: What if low speed
|
|
|
- ep->transfer_size = total_len > 64 ? 64 : total_len;
|
|
|
+ ep->transfer_size = tu_min32(total_len, ep->wMaxPacketSize);
|
|
|
ep->active = true;
|
|
|
ep->user_buf = buffer;
|
|
|
// Recalculate if this is the last buffer
|
|
|
@@ -232,7 +231,7 @@ bool _hw_endpoint_xfer_continue(struct hw_endpoint *ep)
|
|
|
|
|
|
// Now we have synced our state with the hardware. Is there more data to transfer?
|
|
|
uint remaining_bytes = ep->total_len - ep->len;
|
|
|
- ep->transfer_size = remaining_bytes > 64 ? 64 : remaining_bytes;
|
|
|
+ ep->transfer_size = tu_min32(remaining_bytes, ep->wMaxPacketSize);
|
|
|
_hw_endpoint_update_last_buf(ep);
|
|
|
|
|
|
// Can happen because of programmer error so check for it
|