diff options
| author | Ha Thach <[email protected]> | 2024-07-19 18:28:33 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-07-19 18:28:33 +0700 |
| commit | c48d2eba0d1cda4e9fadfe58d621ad300dfd6786 (patch) | |
| tree | ac566bc7aeaa907fe50d43fc234e64631a0144fb /src/class/cdc/cdc_device.c | |
| parent | ad3c49ca433afb65d5eba44e8ca186e5e9b475ef (diff) | |
| parent | 6fb6602a097b2d2e026f150d6fde387803606f88 (diff) | |
Merge pull request #2630 from HiFiPhile/dcd_race
Diffstat (limited to 'src/class/cdc/cdc_device.c')
| -rw-r--r-- | src/class/cdc/cdc_device.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c index 681a1b852..ebc408f5a 100644 --- a/src/class/cdc/cdc_device.c +++ b/src/class/cdc/cdc_device.c @@ -83,6 +83,10 @@ static tud_cdc_configure_fifo_t _cdcd_fifo_cfg; static bool _prep_out_transaction (cdcd_interface_t* p_cdc) { uint8_t const rhport = 0; + + // Skip if usb is not ready yet + TU_VERIFY(tud_ready() && p_cdc->ep_out); + uint16_t available = tu_fifo_remaining(&p_cdc->rx_ff); // Prepare for incoming data but only allow what we can store in the ring buffer. @@ -116,6 +120,10 @@ bool tud_cdc_configure_fifo(tud_cdc_configure_fifo_t const* cfg) { return true; } +bool tud_cdc_n_ready(uint8_t itf) { + return tud_ready() && _cdcd_itf[itf].ep_in != 0 && _cdcd_itf[itf].ep_out != 0; +} + bool tud_cdc_n_connected(uint8_t itf) { // DTR (bit 0) active is considered as connected return tud_ready() && tu_bit_test(_cdcd_itf[itf].line_state, 0); |
