diff options
-rw-r--r-- | drivers/spi/atmel_spi.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c index 1d8a2f6bb8eb..8b2601de3630 100644 --- a/drivers/spi/atmel_spi.c +++ b/drivers/spi/atmel_spi.c @@ -113,16 +113,16 @@ static void atmel_spi_next_xfer(struct spi_master *master, len = as->remaining_bytes; - tx_dma = xfer->tx_dma; - rx_dma = xfer->rx_dma; + tx_dma = xfer->tx_dma + xfer->len - len; + rx_dma = xfer->rx_dma + xfer->len - len; /* use scratch buffer only when rx or tx data is unspecified */ - if (rx_dma == INVALID_DMA_ADDRESS) { + if (!xfer->rx_buf) { rx_dma = as->buffer_dma; if (len > BUFFER_SIZE) len = BUFFER_SIZE; } - if (tx_dma == INVALID_DMA_ADDRESS) { + if (!xfer->tx_buf) { tx_dma = as->buffer_dma; if (len > BUFFER_SIZE) len = BUFFER_SIZE; |