summaryrefslogtreecommitdiff
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2015-06-11 12:52:14 +0800
committerZhang Rui <rui.zhang@intel.com>2015-06-11 12:52:14 +0800
commit111b23cf895b5cbcdc1b2c6580be1bb78a577d05 (patch)
tree89b840115ccd753216ba0b26e587e52699b99310 /drivers/spi/spi.c
parent6a6bcf08e5d1834447655a762dfaf552b675cc54 (diff)
parent53daf9383f34d7bf61358a37449fb4d59fbdafc2 (diff)
Merge branches 'release' and 'thermal-soc' of .git into next
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r--drivers/spi/spi.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index d5d7d2235163..50910d85df5a 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -583,6 +583,15 @@ static int spi_unmap_msg(struct spi_master *master, struct spi_message *msg)
rx_dev = master->dma_rx->device->dev;
list_for_each_entry(xfer, &msg->transfers, transfer_list) {
+ /*
+ * Restore the original value of tx_buf or rx_buf if they are
+ * NULL.
+ */
+ if (xfer->tx_buf == master->dummy_tx)
+ xfer->tx_buf = NULL;
+ if (xfer->rx_buf == master->dummy_rx)
+ xfer->rx_buf = NULL;
+
if (!master->can_dma(master, msg->spi, xfer))
continue;