stm32/spi: do not clear rxfifo in SPIv3, the hw already does it.
This commit is contained in:
parent
4579192832
commit
059b164234
@ -462,6 +462,10 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
|||||||
set_rxdmaen(T::REGS, true);
|
set_rxdmaen(T::REGS, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SPIv3 clears rxfifo on SPE=0
|
||||||
|
#[cfg(not(spi_v3))]
|
||||||
|
flush_rx_fifo(T::REGS);
|
||||||
|
|
||||||
let clock_byte_count = data.len();
|
let clock_byte_count = data.len();
|
||||||
|
|
||||||
let rx_request = self.rxdma.request();
|
let rx_request = self.rxdma.request();
|
||||||
@ -522,8 +526,8 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
|||||||
set_rxdmaen(T::REGS, true);
|
set_rxdmaen(T::REGS, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: This is unnecessary in some versions because
|
// SPIv3 clears rxfifo on SPE=0
|
||||||
// clearing SPE automatically clears the fifos
|
#[cfg(not(spi_v3))]
|
||||||
flush_rx_fifo(T::REGS);
|
flush_rx_fifo(T::REGS);
|
||||||
|
|
||||||
let rx_request = self.rxdma.request();
|
let rx_request = self.rxdma.request();
|
||||||
@ -723,6 +727,7 @@ fn spin_until_rx_ready(regs: Regs) -> Result<(), Error> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(spi_v3))]
|
||||||
fn flush_rx_fifo(regs: Regs) {
|
fn flush_rx_fifo(regs: Regs) {
|
||||||
unsafe {
|
unsafe {
|
||||||
#[cfg(not(spi_v3))]
|
#[cfg(not(spi_v3))]
|
||||||
|
Loading…
Reference in New Issue
Block a user