diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-12-13 15:18:00 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-12-14 13:09:27 +0100 |
commit | f74e2959ded6b0e1e750b539df27ba18eeceb46f (patch) | |
tree | e3f67aee65f28451e029bf256a7c412158f7d74a /c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c | |
parent | bsp/atsam: Optimize transfer setup checks (diff) | |
download | rtems-f74e2959ded6b0e1e750b539df27ba18eeceb46f.tar.bz2 |
bsp/atsam: Speed up SPI DMA transfer start
Diffstat (limited to 'c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c')
-rw-r--r-- | c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c b/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c index c88cec9868..247f8869f5 100644 --- a/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c +++ b/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c @@ -354,8 +354,8 @@ static uint32_t atsam_send_command( ) { Spid *spid = &bus->SpiDma; - Spi *pSpiHw = spid->pSpiHw; + Xdmac *pXdmac = bus->SpiDma.pXdmad->pXdmacs; if ( atsam_configure_link_list( @@ -382,14 +382,9 @@ static uint32_t atsam_send_command( bus->spi_switched_on = true; - /* Start DMA 0(RX) && 1(TX) */ - if (XDMAD_StartTransfer(spid->pXdmad, bus->dma_rx_channel)) { - return SPID_ERROR_LOCK; - } - - if (XDMAD_StartTransfer(spid->pXdmad, bus->dma_tx_channel)) { - return SPID_ERROR_LOCK; - } + /* Start DMA */ + XDMAC_StartTransfer(pXdmac, bus->dma_rx_channel); + XDMAC_StartTransfer(pXdmac, bus->dma_tx_channel); return 0; } |