aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-nrf/src/radio/ble.rs6
1 files changed, 2 insertions, 4 deletions
diff --git a/embassy-nrf/src/radio/ble.rs b/embassy-nrf/src/radio/ble.rs
index 93003fb19..0fae54f52 100644
--- a/embassy-nrf/src/radio/ble.rs
+++ b/embassy-nrf/src/radio/ble.rs
@@ -347,12 +347,10 @@ impl<'d, T: Instance> Radio<'d, T> {
347 trace!("radio drop: stopping"); 347 trace!("radio drop: stopping");
348 348
349 r.intenclr.write(|w| w.end().clear()); 349 r.intenclr.write(|w| w.end().clear());
350 r.events_end.reset();
351 350
352 r.tasks_stop.write(|w| unsafe { w.bits(1) }); 351 r.tasks_stop.write(|w| unsafe { w.bits(1) });
353 352
354 // The docs don't explicitly mention any event to acknowledge the stop task 353 r.events_end.reset();
355 while r.events_end.read().bits() == 0 {}
356 354
357 trace!("radio drop: stopped"); 355 trace!("radio drop: stopped");
358 }); 356 });
@@ -382,7 +380,7 @@ impl<'d, T: Instance> Radio<'d, T> {
382 .await; 380 .await;
383 381
384 compiler_fence(Ordering::SeqCst); 382 compiler_fence(Ordering::SeqCst);
385 r.events_disabled.reset(); // ACK 383 r.events_end.reset(); // ACK
386 384
387 // Everthing ends fine, so it disable the drop 385 // Everthing ends fine, so it disable the drop
388 drop.defuse(); 386 drop.defuse();