zephyr/subsys/usb/device
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
..
class usb: device: cdc_acm: block in uart_poll_out() routine 2023-10-23 11:48:44 +02:00
bos.c
CMakeLists.txt
Kconfig COVERAGE: Fix COVERAGE_GCOV dependencies 2023-08-24 15:36:31 +02:00
os_desc.c
os_desc.h
usb_descriptor.c iterable_sections: move to specific header 2023-05-22 10:42:30 +02:00
usb_descriptor.h
usb_device.c drivers: gpio: use gpio_is_ready_dt helper function 2023-08-28 08:48:35 -05:00
usb_transfer.c usb: device: Fix transfer slot leak without callback 2023-08-04 22:54:17 +00:00
usb_transfer.h
usb_work_q.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
usb_work_q.h