Bluetooth: controller: split: Fix missing radio status reset
Fix missing radio status and configurations reset on radio event abort. This caused under race conditions the radio being put into active state after being aborted. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
8d8d6a7608
commit
20e385e675
3 changed files with 36 additions and 0 deletions
|
@ -544,6 +544,18 @@ static void isr_done(void *param)
|
|||
|
||||
static void isr_abort(void *param)
|
||||
{
|
||||
/* Clear radio status and events */
|
||||
radio_status_reset();
|
||||
radio_tmr_status_reset();
|
||||
radio_filter_status_reset();
|
||||
radio_ar_status_reset();
|
||||
radio_rssi_status_reset();
|
||||
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_GPIO_PA_PIN) ||
|
||||
IS_ENABLED(CONFIG_BT_CTLR_GPIO_LNA_PIN)) {
|
||||
radio_gpio_pa_lna_disable();
|
||||
}
|
||||
|
||||
radio_filter_disable();
|
||||
|
||||
isr_cleanup(param);
|
||||
|
|
|
@ -417,6 +417,18 @@ void lll_conn_isr_tx(void *param)
|
|||
|
||||
void lll_conn_isr_abort(void *param)
|
||||
{
|
||||
/* Clear radio status and events */
|
||||
radio_status_reset();
|
||||
radio_tmr_status_reset();
|
||||
radio_filter_status_reset();
|
||||
radio_ar_status_reset();
|
||||
radio_rssi_status_reset();
|
||||
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_GPIO_PA_PIN) ||
|
||||
IS_ENABLED(CONFIG_BT_CTLR_GPIO_LNA_PIN)) {
|
||||
radio_gpio_pa_lna_disable();
|
||||
}
|
||||
|
||||
isr_cleanup(param);
|
||||
}
|
||||
|
||||
|
|
|
@ -557,6 +557,18 @@ static void isr_window(void *param)
|
|||
|
||||
static void isr_abort(void *param)
|
||||
{
|
||||
/* Clear radio status and events */
|
||||
radio_status_reset();
|
||||
radio_tmr_status_reset();
|
||||
radio_filter_status_reset();
|
||||
radio_ar_status_reset();
|
||||
radio_rssi_status_reset();
|
||||
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_GPIO_PA_PIN) ||
|
||||
IS_ENABLED(CONFIG_BT_CTLR_GPIO_LNA_PIN)) {
|
||||
radio_gpio_pa_lna_disable();
|
||||
}
|
||||
|
||||
/* Scanner stop can expire while here in this ISR.
|
||||
* Deferred attempt to stop can fail as it would have
|
||||
* expired, hence ignore failure.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue