:orphan: .. title:: CONFIG_USB_WORKQUEUE .. kconfig:: CONFIG_USB_WORKQUEUE CONFIG_USB_WORKQUEUE #################### *Use a dedicate work queue in the USB subsystem* Type: ``bool`` Help ==== .. code-block:: none 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 =================== \ :kconfig:`USB_DEVICE_STACK ` *(Includes any dependencies from ifs and menus.)* Default ======= - y if \ :kconfig:`USB_CDC_ACM ` Kconfig definition ================== At ``/usb/Kconfig:128`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:44`` → ``/Kconfig:49`` Menu path: (Top) → Sub Systems and OS Services → USB Device Support .. code-block:: kconfig config USB_WORKQUEUE bool "Use a dedicate work queue in the USB subsystem" default y if USB_CDC_ACM depends on 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.)*