Bluetooth: controller: Scanning with unreserved window
Added a Kconfig option to enable scanner with unreserved scan window when in continuous scan mode. This will permit scanner to be always pre-empted by other roles, making it the lowest in priority when it comes to using the radio. Fixes #27414. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
491a426639
commit
61b6534727
2 changed files with 16 additions and 4 deletions
|
@ -413,6 +413,14 @@ config BT_CTLR_SCAN_INDICATION
|
||||||
help
|
help
|
||||||
Generate events indicating on air scanner events.
|
Generate events indicating on air scanner events.
|
||||||
|
|
||||||
|
config BT_CTLR_SCAN_UNRESERVED
|
||||||
|
bool "Unreserved scan window"
|
||||||
|
depends on BT_OBSERVER
|
||||||
|
default y if BT_MESH
|
||||||
|
help
|
||||||
|
Scanner will not use time space reservation for scan window when in
|
||||||
|
continuous scan mode.
|
||||||
|
|
||||||
config BT_MAYFLY_YIELD_AFTER_CALL
|
config BT_MAYFLY_YIELD_AFTER_CALL
|
||||||
bool "Yield from mayfly thread after first call"
|
bool "Yield from mayfly thread after first call"
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -294,10 +294,14 @@ uint8_t ull_scan_enable(struct ll_scan_set *scan)
|
||||||
(lll->ticks_window +
|
(lll->ticks_window +
|
||||||
HAL_TICKER_US_TO_TICKS(EVENT_OVERHEAD_START_US));
|
HAL_TICKER_US_TO_TICKS(EVENT_OVERHEAD_START_US));
|
||||||
} else {
|
} else {
|
||||||
scan->evt.ticks_slot =
|
if (IS_ENABLED(CONFIG_BT_CTLR_SCAN_UNRESERVED)) {
|
||||||
(ticks_interval -
|
scan->evt.ticks_slot = 0U;
|
||||||
HAL_TICKER_US_TO_TICKS(EVENT_OVERHEAD_XTAL_US));
|
} else {
|
||||||
lll->ticks_window = 0;
|
scan->evt.ticks_slot = ticks_interval -
|
||||||
|
HAL_TICKER_US_TO_TICKS(EVENT_OVERHEAD_XTAL_US);
|
||||||
|
}
|
||||||
|
|
||||||
|
lll->ticks_window = 0U;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_BT_CTLR_LOW_LAT)) {
|
if (IS_ENABLED(CONFIG_BT_CTLR_LOW_LAT)) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue