Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bluetooth: Support
BT_RECV_WORKQ_BT
with Zephyr LL
This patch allows selecting the combination of `CONFIG_BT_RECV_WORKQ_BT` and `BT_LL_SW_SPLIT`. The implementation of `bt_recv_prio` is copied from `hci_raw.c`. This ensures the order of packets is the same as when the controller's `hci_driver.c` is off-chip and sends HCI over UART. Without this patch, the Zephyr LL driver will duplicate some events on behalf of `hci_core`. This duplication is not wanted when `CONFIG_BT_RECV_WORKQ_BT=y`. The above mentioned duplication is not sound and is evidenced in logged warnings, e.g. in `tests/bsim/bluetooth/host/l2cap/stress` with `CONFIG_BT_RECV_WORKQ_BT=y` logging "no transition". This patch is a step towards the deprecation of `CONFIG_BT_RECV_BLOCKING`. `CONFIG_BT_RECV_BLOCKING` is complicated and tightly coupled to `hci_core`. In the future, removing `CONFIG_BT_RECV_BLOCKING` will give a cleaner separation between `hci_core` and the drivers and allow `hci_core` to evolve without changes spilling out into the drivers. Signed-off-by: Aleksander Wasaznik <[email protected]>
- Loading branch information