فهرست منبع

Merge pull request #657 from ndinsmore/RP2040_enable_isochronous_buffer_size

RP2040:Enable full size isochronous buffers
Ha Thach 5 سال پیش
والد
کامیت
d3195414dc
1فایلهای تغییر یافته به همراه2 افزوده شده و 3 حذف شده
  1. 2 3
      src/portable/raspberrypi/rp2040/rp2040_usb.c

+ 2 - 3
src/portable/raspberrypi/rp2040/rp2040_usb.c

@@ -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