diff --git a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_adv.c b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_adv.c index 12bf96ac2fd..dd42a406c19 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_adv.c +++ b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_adv.c @@ -574,6 +574,10 @@ static void isr_cleanup(void *param) int err; radio_isr_set(isr_race, param); + if (!radio_is_idle()) { + radio_disable(); + } + radio_tmr_stop(); err = lll_clk_off(); diff --git a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c index 53980ba9bab..df786f5c164 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c +++ b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c @@ -632,6 +632,10 @@ static void isr_cleanup(void *param) int err; radio_isr_set(isr_race, param); + if (!radio_is_idle()) { + radio_disable(); + } + radio_tmr_stop(); err = lll_clk_off(); diff --git a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c index e4544dc3bc9..91860e3b462 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c +++ b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c @@ -636,6 +636,10 @@ static void isr_cleanup(void *param) #endif /* !CONFIG_BT_CTLR_SCAN_INDICATION */ radio_isr_set(isr_race, param); + if (!radio_is_idle()) { + radio_disable(); + } + radio_tmr_stop(); err = lll_clk_off();