diff options
author | Mark Brown <broonie@kernel.org> | 2019-02-20 18:58:18 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-02-20 18:58:18 +0100 |
commit | bf9f742c38c4604a8ee349f7baefca58b3a5ff67 (patch) | |
tree | fa4d349e4a843bf5543f6e7ab6e73dce1eda10e9 /drivers/spi/spi-sprd.c | |
parent | spi: sifive: Add driver for the SiFive SPI controller (diff) | |
parent | spi: pxa2xx: Setup maximum supported DMA transfer length (diff) | |
download | linux-bf9f742c38c4604a8ee349f7baefca58b3a5ff67.tar.xz linux-bf9f742c38c4604a8ee349f7baefca58b3a5ff67.zip |
Merge branch 'for-5.0' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-5.1
Diffstat (limited to 'drivers/spi/spi-sprd.c')
-rw-r--r-- | drivers/spi/spi-sprd.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/spi/spi-sprd.c b/drivers/spi/spi-sprd.c index f6c8838f7dc3..1b7eebb72c07 100644 --- a/drivers/spi/spi-sprd.c +++ b/drivers/spi/spi-sprd.c @@ -403,7 +403,7 @@ static int sprd_spi_txrx_bufs(struct spi_device *sdev, struct spi_transfer *t) { struct sprd_spi *ss = spi_controller_get_devdata(sdev->controller); u32 trans_len = ss->trans_len, len; - int ret, write_size = 0; + int ret, write_size = 0, read_size = 0; while (trans_len) { len = trans_len > SPRD_SPI_FIFO_SIZE ? SPRD_SPI_FIFO_SIZE : @@ -439,13 +439,15 @@ static int sprd_spi_txrx_bufs(struct spi_device *sdev, struct spi_transfer *t) goto complete; if (ss->trans_mode & SPRD_SPI_RX_MODE) - ss->read_bufs(ss, len); + read_size += ss->read_bufs(ss, len); trans_len -= len; } - ret = write_size; - + if (ss->trans_mode & SPRD_SPI_TX_MODE) + ret = write_size; + else + ret = read_size; complete: sprd_spi_enter_idle(ss); |