zephyr/subsys
Piotr Pryga e81414d28f Bluetooth: Controller: Fix CTE_REQ disable lock if there is no CTE_RSP
The periodic CTE_REQ disable command, requested by Host, may be locked
until connection is dropped due to missing CTE_RSP from peer device.
That is caused by implementation of CTE_REQ disable and CTE_REQ
control procedure handling.

The procedure is marked as active when CTE request was send to peer
device. It is marked as inactive after completion of the procedure.
That caused locking of CTE disable on a semaphore.

The BT 5.3 Core Spec, Vol 4, Part E, section 7.8.85 says the HCI_LE_-
Connection_CTE_Request_Enable should be considered active on a conne-
ction from when Host successfully issues the command with Enable=0x1
until a command is issued with Enable=0x0 or single LLCP CTE request
has finished (CTE_Request_Interval=0x0). Also there is a clarification
from BT SIG that the command with Enable=0x0 does not affect any
initiated LLCP CTE request. That means Controller is allowed to finish
already started procedure and it is not allowed to start new LLCP CTE
request procedure after completion of the command with Enable=0x0.

Taking that into account, there is no need to synchronize ULL and LLL
in regard of disable the LLCP CTE request while the procedure is
pending. Controller is free to complete the procedure or terminate it.

The change removes all code related with cte_req.is_active, disable
callback and waiting of ULL for LLL to finish the LLCP CTE request.

The ULL will complete the HCI_LE_Connection_Request_Enable with
Enable=0x0 immediately. In case the procedure is disabled in before
the response arrives, then further processing of the response is
dropped and the procedure context released.

The context is not released by the code responsible for disable
handling, to have single place where it is done.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-05-13 10:25:39 -05:00
..
bluetooth Bluetooth: Controller: Fix CTE_REQ disable lock if there is no CTE_RSP 2022-05-13 10:25:39 -05:00
canbus subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
console subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
cpp subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
debug subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
demand_paging subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
dfu subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
disk subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
emul subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
fb subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
fs subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipc subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
jwt subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
logging logging: syst: embed log message source IDs in Sys-T messages 2022-05-09 12:54:53 -05:00
lorawan subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
mgmt mgmt: mcumgr: lib: img: Add image header to callback 2022-05-11 20:32:52 +02:00
modbus subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net net: lwm2m: Fix SenML CBOR input basename length 2022-05-13 10:15:27 -05:00
pm subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
portability subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
random subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
sd sd: increase SDMMC busy wait timeout 2022-05-09 08:46:29 -05:00
settings settings: add shell commands to write and delete settings 2022-05-13 10:11:40 -05:00
shell shell: check echo flag in z_shell_cursor_in_empty_line() 2022-05-13 10:22:17 -05:00
stats subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
storage subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
task_wdt subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
testsuite ztest: Add zassert_between_inclusive macro 2022-05-13 14:17:08 +02:00
timing subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
tracing subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
usb usb: dfu: Enable progressive erase for MCUX FlexSPI flash 2022-05-09 08:54:30 -05:00
CMakeLists.txt sd: Add common SD initialization code 2022-04-29 14:21:36 -05:00
Kconfig sd: Add common SD initialization code 2022-04-29 14:21:36 -05:00