diff options
| author | Pete Bone <[email protected]> | 2022-11-30 13:43:45 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-11-30 13:43:45 +0100 |
| commit | 0ddd5591af65fc98dac8083cb50d1bd4ea3e1d3e (patch) | |
| tree | 8ef922be29c2f1051ffa21857e1748d148be951d /src | |
| parent | d588167a39fd01e5cea718deb1917e74c6a801ab (diff) | |
| parent | 2ae6a4d519cdb1d8df7a4c7b9a979b8ad3713e88 (diff) | |
Merge branch 'hathach:master' into master
Diffstat (limited to 'src')
| -rw-r--r-- | src/portable/raspberrypi/rp2040/rp2040_usb.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/portable/raspberrypi/rp2040/rp2040_usb.c b/src/portable/raspberrypi/rp2040/rp2040_usb.c index 25c013bd2..d7895175e 100644 --- a/src/portable/raspberrypi/rp2040/rp2040_usb.c +++ b/src/portable/raspberrypi/rp2040/rp2040_usb.c @@ -155,7 +155,9 @@ static void __tusb_irq_path_func(_hw_endpoint_start_next_buffer)(struct hw_endpo // For now: skip double buffered for Device mode, OUT endpoint since // host could send < 64 bytes and cause short packet on buffer0 // NOTE this could happen to Host mode IN endpoint - bool const force_single = !(usb_hw->main_ctrl & USB_MAIN_CTRL_HOST_NDEVICE_BITS) && !tu_edpt_dir(ep->ep_addr); + // Also, Host mode interrupt endpoint hardware is only single buffered + bool const force_single = (!(usb_hw->main_ctrl & USB_MAIN_CTRL_HOST_NDEVICE_BITS) && !tu_edpt_dir(ep->ep_addr)) || + ((usb_hw->main_ctrl & USB_MAIN_CTRL_HOST_NDEVICE_BITS) && tu_edpt_number(ep->ep_addr) != 0); if(ep->remaining_len && !force_single) { |
