Skip to content

Commit a95c8bc

Browse files
committed
refactor: Rename
I2sWriteDmaTransfer and I2sReadDmaTransfer types to I2sTxDmaTransfer and I2sRxDmaTransfer This improves naming consistency for I2S DMA transfer types and updates related methods and references accordingly.
1 parent 2384344 commit a95c8bc

File tree

2 files changed

+20
-24
lines changed

2 files changed

+20
-24
lines changed

esp-hal/src/dma/buffers.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,7 +1160,6 @@ impl DmaRxStreamBuf {
11601160
}
11611161

11621162
// Check that the last descriptor can hold the excess
1163-
// FIXME: shouldn't this be `buffer.len() % chunk_size` ?
11641163
let excess = buffer.len() % descriptors.len();
11651164
if chunk_size + excess > 4095 {
11661165
return Err(DmaBufError::InsufficientDescriptors);
@@ -1474,7 +1473,6 @@ unsafe impl DmaTxBuffer for DmaTxStreamBuf {
14741473
next = desc;
14751474

14761475
desc.reset_for_tx(false);
1477-
// NOTE: Sending zeros to DMA so that DMA doesn't stop immediately.
14781476
desc.set_length(desc.size());
14791477
}
14801478
Preparation {

esp-hal/src/i2s/master.rs

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ where
434434
pub fn write<TXBUF: DmaTxBuffer>(
435435
mut self,
436436
mut buf: TXBUF,
437-
) -> Result<I2sWriteDmaTransfer<'d, Dm, TXBUF>, Error> {
437+
) -> Result<I2sTxDmaTransfer<'d, Dm, TXBUF>, Error> {
438438
// Reset TX unit and TX FIFO
439439
self.i2s.reset_tx();
440440

@@ -454,7 +454,7 @@ where
454454
// start: set I2S_TX_START
455455
self.i2s.tx_start();
456456

457-
Ok(I2sWriteDmaTransfer {
457+
Ok(I2sTxDmaTransfer {
458458
i2s_tx: ManuallyDrop::new(self),
459459
buffer_view: ManuallyDrop::new(buf.into_view()),
460460
})
@@ -490,14 +490,10 @@ where
490490
mut self,
491491
mut buf: RXBUF,
492492
chunk_size: usize,
493-
) -> Result<I2sReadDmaTransfer<'d, Dm, RXBUF>, Error>
493+
) -> Result<I2sRxDmaTransfer<'d, Dm, RXBUF>, Error>
494494
where
495495
RXBUF: DmaRxBuffer,
496496
{
497-
// FIXME: not checking if buf is aligned to 32bit anymore as we did before here.
498-
// Given current implementation, it is the responsibility of the creater
499-
// of `buf` to check alignment.
500-
501497
// Reset RX unit and RX FIFO
502498
self.i2s.reset_rx();
503499

@@ -515,7 +511,7 @@ where
515511

516512
// start: set I2S_RX_START
517513
self.i2s.rx_start(chunk_size);
518-
Ok(I2sReadDmaTransfer {
514+
Ok(I2sRxDmaTransfer {
519515
i2s_rx: ManuallyDrop::new(self),
520516
buffer_view: ManuallyDrop::new(buf.into_view()),
521517
chunk_size,
@@ -524,26 +520,26 @@ where
524520
}
525521

526522
/// An in-progress DMA write transfer.
527-
pub struct I2sWriteDmaTransfer<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> {
523+
pub struct I2sTxDmaTransfer<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> {
528524
i2s_tx: ManuallyDrop<I2sTx<'d, Dm>>,
529525
buffer_view: ManuallyDrop<BUFFER::View>,
530526
}
531527

532-
impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> Deref for I2sWriteDmaTransfer<'d, Dm, BUFFER> {
528+
impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> Deref for I2sTxDmaTransfer<'d, Dm, BUFFER> {
533529
type Target = BUFFER::View;
534530

535531
fn deref(&self) -> &Self::Target {
536532
&self.buffer_view
537533
}
538534
}
539535

540-
impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> DerefMut for I2sWriteDmaTransfer<'d, Dm, BUFFER> {
536+
impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> DerefMut for I2sTxDmaTransfer<'d, Dm, BUFFER> {
541537
fn deref_mut(&mut self) -> &mut Self::Target {
542538
&mut self.buffer_view
543539
}
544540
}
545541

546-
impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> Drop for I2sWriteDmaTransfer<'d, Dm, BUFFER> {
542+
impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> Drop for I2sTxDmaTransfer<'d, Dm, BUFFER> {
547543
fn drop(&mut self) {
548544
self.stop_peripheral();
549545
// SAFETY: This is Drop, we know that self.i2s_tx and self.buffer_view
@@ -555,7 +551,7 @@ impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> Drop for I2sWriteDmaTransfer<'d, D
555551
}
556552
}
557553

558-
impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> I2sWriteDmaTransfer<'d, Dm, BUFFER> {
554+
impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> I2sTxDmaTransfer<'d, Dm, BUFFER> {
559555
/// Stops the DMA transfer and returns the I2S transmitter and buffer.
560556
pub fn stop(mut self) -> (I2sTx<'d, Dm>, BUFFER) {
561557
self.stop_peripheral();
@@ -595,31 +591,32 @@ impl<'d, Dm: DriverMode, BUFFER: DmaTxBuffer> I2sWriteDmaTransfer<'d, Dm, BUFFER
595591

596592
fn stop_peripheral(&mut self) {
597593
self.i2s_tx.i2s.tx_stop();
594+
self.i2s_tx.tx_channel.stop_transfer();
598595
}
599596
}
600597

601598
/// An in-progress async circular DMA read transfer.
602-
pub struct I2sReadDmaTransfer<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> {
599+
pub struct I2sRxDmaTransfer<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> {
603600
i2s_rx: ManuallyDrop<I2sRx<'d, Dm>>,
604601
chunk_size: usize,
605602
buffer_view: ManuallyDrop<BUFFER::View>,
606603
}
607604

608-
impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> Deref for I2sReadDmaTransfer<'d, Dm, BUFFER> {
605+
impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> Deref for I2sRxDmaTransfer<'d, Dm, BUFFER> {
609606
type Target = BUFFER::View;
610607

611608
fn deref(&self) -> &Self::Target {
612609
&self.buffer_view
613610
}
614611
}
615612

616-
impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> DerefMut for I2sReadDmaTransfer<'d, Dm, BUFFER> {
613+
impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> DerefMut for I2sRxDmaTransfer<'d, Dm, BUFFER> {
617614
fn deref_mut(&mut self) -> &mut Self::Target {
618615
&mut self.buffer_view
619616
}
620617
}
621618

622-
impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> Drop for I2sReadDmaTransfer<'d, Dm, BUFFER> {
619+
impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> Drop for I2sRxDmaTransfer<'d, Dm, BUFFER> {
623620
fn drop(&mut self) {
624621
self.stop_peripheral();
625622
// SAFETY: This is Drop, we know that self.i2s_rx and self.buffer_view
@@ -631,7 +628,7 @@ impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> Drop for I2sReadDmaTransfer<'d, Dm
631628
}
632629
}
633630

634-
impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> I2sReadDmaTransfer<'d, Dm, BUFFER> {
631+
impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> I2sRxDmaTransfer<'d, Dm, BUFFER> {
635632
/// Stops the transfer and returns the I2S receiver and the buffer.
636633
pub fn stop(mut self) -> (I2sRx<'d, Dm>, BUFFER) {
637634
self.stop_peripheral();
@@ -672,6 +669,7 @@ impl<'d, Dm: DriverMode, BUFFER: DmaRxBuffer> I2sReadDmaTransfer<'d, Dm, BUFFER>
672669

673670
fn stop_peripheral(&mut self) {
674671
self.i2s_rx.i2s.rx_stop();
672+
self.i2s_rx.rx_channel.stop_transfer();
675673
}
676674
}
677675

@@ -1809,18 +1807,18 @@ mod private {
18091807

18101808
/// Async functionality
18111809
pub mod asynch {
1812-
use super::{Error, I2sWriteDmaTransfer};
1810+
use super::{Error, I2sTxDmaTransfer};
18131811
use crate::{
18141812
Async,
18151813
dma::{
18161814
DmaRxBuffer,
18171815
DmaTxBuffer,
18181816
asynch::{DmaRxDoneChFuture, DmaTxDoneChFuture},
18191817
},
1820-
i2s::master::I2sReadDmaTransfer,
1818+
i2s::master::I2sRxDmaTransfer,
18211819
};
18221820

1823-
impl<BUFFER: DmaTxBuffer> I2sWriteDmaTransfer<'_, Async, BUFFER> {
1821+
impl<BUFFER: DmaTxBuffer> I2sTxDmaTransfer<'_, Async, BUFFER> {
18241822
/// Waits for DMA process to be made and additional room to be
18251823
/// available.
18261824
///
@@ -1831,7 +1829,7 @@ pub mod asynch {
18311829
}
18321830
}
18331831

1834-
impl<BUFFER: DmaRxBuffer> I2sReadDmaTransfer<'_, Async, BUFFER> {
1832+
impl<BUFFER: DmaRxBuffer> I2sRxDmaTransfer<'_, Async, BUFFER> {
18351833
/// Waits for DMA process to be made and additional room to be
18361834
/// available.
18371835
pub async fn wait_for_available(&mut self) -> Result<(), Error> {

0 commit comments

Comments
 (0)