Bluetooth: Controller: Relax radio packet pointer assignment deadline
Relax the radio packet pointer assignment deadline assertion until access address being transmitted. The PDU buffer is probably only needed just after access address is being transmitted or received by the radio. This will give some more breathing room for slow CPUs like in nRF51x SoCs. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
committed by
Benjamin Cabé
parent
4227016559
commit
230df77993
@@ -791,7 +791,12 @@ static void isr_tx(void *param)
|
||||
radio_pkt_rx_set(node_rx->pdu);
|
||||
|
||||
/* assert if radio packet ptr is not set and radio started rx */
|
||||
LL_ASSERT(!radio_is_ready());
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_PROFILE_ISR)) {
|
||||
LL_ASSERT_MSG(!radio_is_address(), "%s: Radio ISR latency: %u", __func__,
|
||||
lll_prof_latency_get());
|
||||
} else {
|
||||
LL_ASSERT(!radio_is_address());
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_PRIVACY)
|
||||
if (ull_filter_lll_rl_enabled()) {
|
||||
@@ -1211,7 +1216,12 @@ static inline int isr_rx_pdu(struct lll_scan *lll, struct pdu_adv *pdu_adv_rx,
|
||||
radio_pkt_tx_set(pdu_tx);
|
||||
|
||||
/* assert if radio packet ptr is not set and radio started tx */
|
||||
LL_ASSERT(!radio_is_ready());
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_PROFILE_ISR)) {
|
||||
LL_ASSERT_MSG(!radio_is_address(), "%s: Radio ISR latency: %u", __func__,
|
||||
lll_prof_latency_get());
|
||||
} else {
|
||||
LL_ASSERT(!radio_is_address());
|
||||
}
|
||||
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_PROFILE_ISR)) {
|
||||
lll_prof_cputime_capture();
|
||||
@@ -1343,7 +1353,12 @@ static inline int isr_rx_pdu(struct lll_scan *lll, struct pdu_adv *pdu_adv_rx,
|
||||
radio_pkt_tx_set(pdu_tx);
|
||||
|
||||
/* assert if radio packet ptr is not set and radio started tx */
|
||||
LL_ASSERT(!radio_is_ready());
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_PROFILE_ISR)) {
|
||||
LL_ASSERT_MSG(!radio_is_address(), "%s: Radio ISR latency: %u", __func__,
|
||||
lll_prof_latency_get());
|
||||
} else {
|
||||
LL_ASSERT(!radio_is_address());
|
||||
}
|
||||
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_PROFILE_ISR)) {
|
||||
lll_prof_cputime_capture();
|
||||
|
||||
@@ -356,7 +356,8 @@ void lll_scan_aux_isr_aux_setup(void *param)
|
||||
aux_start_us -= EVENT_JITTER_US;
|
||||
|
||||
start_us = radio_tmr_start_us(0, aux_start_us);
|
||||
LL_ASSERT(start_us == (aux_start_us + 1U));
|
||||
LL_ASSERT_MSG(start_us == (aux_start_us + 1U), "aux_offset %u us, start_us %u != %u",
|
||||
aux_offset_us, start_us, (aux_start_us + 1U));
|
||||
|
||||
/* Setup header complete timeout */
|
||||
hcto = start_us;
|
||||
|
||||
Reference in New Issue
Block a user