Bluetooth: controller: split: Fix aborting of connection req PDU
Fix the initiator so that connection request PDU is not abort mid-air by preemption by the overalapping first connection event. If the connection establishment is in progress, then the first connection event trying to abort the initiator will wait the connection request to be transmited completely. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
d5314b8387
commit
430df927b0
1 changed files with 10 additions and 3 deletions
|
@ -8,7 +8,9 @@
|
|||
#include <toolchain.h>
|
||||
#include <bluetooth/hci.h>
|
||||
#include <sys/byteorder.h>
|
||||
#include <soc.h>
|
||||
|
||||
#include "hal/cpu.h"
|
||||
#include "hal/ccm.h"
|
||||
#include "hal/radio.h"
|
||||
#include "hal/ticker.h"
|
||||
|
@ -35,7 +37,6 @@
|
|||
#define BT_DBG_ENABLED IS_ENABLED(CONFIG_BT_DEBUG_HCI_DRIVER)
|
||||
#define LOG_MODULE_NAME bt_ctlr_lll_scan
|
||||
#include "common/log.h"
|
||||
#include <soc.h>
|
||||
#include "hal/debug.h"
|
||||
|
||||
static int init_reset(void);
|
||||
|
@ -313,8 +314,14 @@ static void abort_cb(struct lll_prepare_param *prepare_param, void *param)
|
|||
* After event has been cleanly aborted, clean up resources
|
||||
* and dispatch event done.
|
||||
*/
|
||||
radio_isr_set(isr_abort, param);
|
||||
radio_disable();
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_LOW_LAT) && lll_is_stop(param)) {
|
||||
while (!radio_has_disabled()) {
|
||||
cpu_sleep();
|
||||
}
|
||||
} else {
|
||||
radio_isr_set(isr_abort, param);
|
||||
radio_disable();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue