:orphan: .. title:: USB_WORKQUEUE .. option:: CONFIG_USB_WORKQUEUE *Use a dedicate work queue in the USB subsystem* Type: ``bool`` Help ==== This option provides a dedicated work queue that is used for all offloaded operations initiated by the USB subsystem. This prevents deadlock situations where tasks on the system workqueue inadvertently initiate operations that block, such as UART transmission on CDC-ACM, preventing the system work queue from making progress on the USB tasks that would release the task. Without this the system work queue is used for all USB offloaded transfers. Direct dependencies =================== \ :option:`USB_DEVICE_STACK ` *(Includes any dependencies from ifs and menus.)* Default ======= - y if \ :option:`USB_CDC_ACM ` Kconfig definition ================== .. highlight:: kconfig At ``subsys/usb/Kconfig:112`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:34`` → ``subsys/Kconfig:45`` Menu path: (Top) → Sub Systems and OS Services → USB Device Support .. parsed-literal:: config USB_WORKQUEUE bool "Use a dedicate work queue in the USB subsystem" default y if \ :option:`USB_CDC_ACM ` depends on \ :option:`USB_DEVICE_STACK ` help This option provides a dedicated work queue that is used for all offloaded operations initiated by the USB subsystem. This prevents deadlock situations where tasks on the system workqueue inadvertently initiate operations that block, such as UART transmission on CDC-ACM, preventing the system work queue from making progress on the USB tasks that would release the task. Without this the system work queue is used for all USB offloaded transfers. *(The 'depends on' condition includes propagated dependencies from ifs and menus.)*