aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src/i2s.rs
diff options
context:
space:
mode:
authorChristian Perez Llamas <[email protected]>2022-11-13 02:12:58 +0100
committerChristian Perez Llamas <[email protected]>2022-11-13 02:12:58 +0100
commit17857bc18fee95be07ee0c51687d2eb109e5aea6 (patch)
tree59286c1fce74ed2ca8911761de3dea938c7262c4 /embassy-nrf/src/i2s.rs
parentd2e8794f29d3d0afef7a6bc610b2ee4a4d680643 (diff)
Minor changes
Diffstat (limited to 'embassy-nrf/src/i2s.rs')
-rw-r--r--embassy-nrf/src/i2s.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/embassy-nrf/src/i2s.rs b/embassy-nrf/src/i2s.rs
index 9a8f29e78..eed9e1956 100644
--- a/embassy-nrf/src/i2s.rs
+++ b/embassy-nrf/src/i2s.rs
@@ -327,6 +327,7 @@ impl<'d, T: Instance> I2S<'d, T> {
327 pub fn start(&self) -> &Self { 327 pub fn start(&self) -> &Self {
328 let r = T::regs(); 328 let r = T::regs();
329 self.enable(); 329 self.enable();
330 trace!("START");
330 r.tasks_start.write(|w| unsafe { w.bits(1) }); 331 r.tasks_start.write(|w| unsafe { w.bits(1) });
331 self 332 self
332 } 333 }
@@ -487,8 +488,8 @@ impl<'d, T: Instance> I2sOutput<'d, T> {
487 let s = T::state(); 488 let s = T::state();
488 489
489 let seq = s.seq.fetch_add(1, Ordering::Relaxed); 490 let seq = s.seq.fetch_add(1, Ordering::Relaxed);
490 if r.events_txptrupd.read().bits() != 0 && seq > 0 { 491 if r.events_txptrupd.read().bits() != 0 && seq > 1 {
491 info!("XRUN!"); 492 warn!("XRUN!");
492 loop {} 493 loop {}
493 } 494 }
494 495
@@ -505,8 +506,8 @@ impl<'d, T: Instance> I2sOutput<'d, T> {
505 }); 506 });
506 507
507 trace!("[{}] PTR", s.seq.load(Ordering::Relaxed)); 508 trace!("[{}] PTR", s.seq.load(Ordering::Relaxed));
508 r.txd.ptr.write(|w| unsafe { w.ptr().bits(ptr as u32) });
509 r.rxtxd.maxcnt.write(|w| unsafe { w.bits(maxcnt) }); 509 r.rxtxd.maxcnt.write(|w| unsafe { w.bits(maxcnt) });
510 r.txd.ptr.write(|w| unsafe { w.ptr().bits(ptr as u32) });
510 511
511 compiler_fence(Ordering::SeqCst); 512 compiler_fence(Ordering::SeqCst);
512 513
@@ -517,7 +518,7 @@ impl<'d, T: Instance> I2sOutput<'d, T> {
517 r.events_txptrupd.reset(); 518 r.events_txptrupd.reset();
518 r.intenset.write(|w| w.txptrupd().set()); 519 r.intenset.write(|w| w.txptrupd().set());
519 let overruns = s.overruns.fetch_sub(1, Ordering::Relaxed); 520 let overruns = s.overruns.fetch_sub(1, Ordering::Relaxed);
520 if overruns - 1 != 0 { 521 if overruns != 0 {
521 warn!("XRUN: {}", overruns); 522 warn!("XRUN: {}", overruns);
522 s.overruns.store(0, Ordering::Relaxed) 523 s.overruns.store(0, Ordering::Relaxed)
523 } 524 }