summaryrefslogtreecommitdiff
path: root/src/portable/espressif/esp32s2
diff options
context:
space:
mode:
authorReinhard Panhuber <[email protected]>2021-02-14 09:25:34 +0100
committerReinhard Panhuber <[email protected]>2021-02-14 09:25:34 +0100
commit893f997dcb09ffef872ab7cb9a5c0a74839f5715 (patch)
treeb4cf98ff49b8e0360c4a006237fefdd081061706 /src/portable/espressif/esp32s2
parentb634b5958b92fc2352ea20e279e010d8bf4f2df2 (diff)
Change FIFO use indication to ff == NULL to avoid future errors.
This way people don't need to pay attention for the buffer pointer
Diffstat (limited to 'src/portable/espressif/esp32s2')
-rw-r--r--src/portable/espressif/esp32s2/dcd_esp32s2.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/portable/espressif/esp32s2/dcd_esp32s2.c b/src/portable/espressif/esp32s2/dcd_esp32s2.c
index 72fb4ba48..25e54418f 100644
--- a/src/portable/espressif/esp32s2/dcd_esp32s2.c
+++ b/src/portable/espressif/esp32s2/dcd_esp32s2.c
@@ -321,6 +321,7 @@ bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t to
xfer_ctl_t * xfer = XFER_CTL_BASE(epnum, dir);
xfer->buffer = buffer;
+ xfer->ff = NULL;
xfer->total_len = total_bytes;
xfer->queued_len = 0;
xfer->short_packet = false;
@@ -523,7 +524,12 @@ static void receive_packet(xfer_ctl_t *xfer, /* usb_out_endpoint_t * out_ep, */
}
// Common buffer read
- if (xfer->buffer)
+ if (xfer->ff)
+ {
+ // Ring buffer
+ tu_fifo_write_n(xfer->ff, (const void *) rx_fifo, to_recv_size);
+ }
+ else
{
uint8_t to_recv_rem = to_recv_size % 4;
uint16_t to_recv_size_aligned = to_recv_size - to_recv_rem;
@@ -556,12 +562,6 @@ static void receive_packet(xfer_ctl_t *xfer, /* usb_out_endpoint_t * out_ep, */
last_32b_bound[2] = (tmp & 0x00FF0000) >> 16;
}
}
-
- }
- else
- {
- // Ring buffer
- tu_fifo_write_n(xfer->ff, (const void *) rx_fifo, to_recv_size);
}
xfer->queued_len += xfer_size;
@@ -581,7 +581,11 @@ static void transmit_packet(xfer_ctl_t *xfer, volatile usb_in_endpoint_t *in_ep,
uint16_t to_xfer_size = (remaining > xfer->max_size) ? xfer->max_size : remaining;
- if (xfer->buffer)
+ if (xfer->ff)
+ {
+ tu_fifo_read_n(xfer->ff, (void *) tx_fifo, to_xfer_size);
+ }
+ else
{
uint8_t to_xfer_rem = to_xfer_size % 4;
uint16_t to_xfer_size_aligned = to_xfer_size - to_xfer_rem;
@@ -616,10 +620,6 @@ static void transmit_packet(xfer_ctl_t *xfer, volatile usb_in_endpoint_t *in_ep,
(*tx_fifo) = tmp;
}
}
- else
- {
- tu_fifo_read_n(xfer->ff, (void *) tx_fifo, to_xfer_size);
- }
}
static void read_rx_fifo(void)