zephyr/subsys/usb
Johann Fischer c152e0980c usb: device: cdc_acm: block in uart_poll_out() routine
According to the UART API documentation, implementation must block when
the transceiver is full. For CDC ACM UART, TX ringbuffer can be
considered as transceiver buffer/FIFO. Blocking when the USB subsystem
is not ready is considered highly undesirable behavior. Blocking may
also be undesirable when CDC ACM UART is used as a logging backend.

Change the behavior of CDC ACM poll out to:
 - Block if the TX ring buffer is full, hw_flow_control property is
   enabled, and called from a non-ISR context.
 - Do not block if the USB subsystem is not ready, poll out
   implementation is called from an ISR context, or hw_flow_control
   property is disabled.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2023-10-23 11:48:44 +02:00
..
device usb: device: cdc_acm: block in uart_poll_out() routine 2023-10-23 11:48:44 +02:00
device_next usb: device_next: loopback: fixup left over from early state 2023-10-01 09:26:07 +03:00
host usb: host: usbh_ch9: add ASSERT for unresolved data stage conditions 2023-10-01 09:26:07 +03:00
usb_c usbc: add sleep prevention in places that may require it 2023-10-23 10:33:38 +02:00
CMakeLists.txt