@@ -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
18111809pub 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