diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-07 20:08:46 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-07 20:08:46 -0500 |
commit | 021db8e2bde53024a163fb4417a185de46fe77aa (patch) | |
tree | 098a28bd2414ea2622493a1736a677dab5085dfc /drivers/spi/omap2_mcspi.c | |
parent | 72eb6a791459c87a0340318840bb3bd9252b627b (diff) | |
parent | 07fe0351702b6f0c9749e80cdbcb758686b0fe9b (diff) |
Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6
* 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (77 commits)
spi/omap: Fix DMA API usage in OMAP MCSPI driver
spi/imx: correct the test on platform_get_irq() return value
spi/topcliff: Typo fix threhold to threshold
spi/dw_spi Typo change diable to disable.
spi/fsl_espi: change the read behaviour of the SPIRF
spi/mpc52xx-psc-spi: move probe/remove to proper sections
spi/dw_spi: add DMA support
spi/dw_spi: change to EXPORT_SYMBOL_GPL for exported APIs
spi/dw_spi: Fix too short timeout in spi polling loop
spi/pl022: convert running variable
spi/pl022: convert busy flag to a bool
spi/pl022: pass the returned sglen to the DMA engine
spi/pl022: map the buffers on the DMA engine
spi/topcliff_pch: Fix data transfer issue
spi/imx: remove autodetection
spi/pxa2xx: pass of_node to spi device and set a parent device
spi/pxa2xx: Modify RX-Tresh instead of busy-loop for the remaining RX bytes.
spi/pxa2xx: Add chipselect support for Sodaville
spi/pxa2xx: Consider CE4100's FIFO depth
spi/pxa2xx: Add CE4100 support
...
Diffstat (limited to 'drivers/spi/omap2_mcspi.c')
-rw-r--r-- | drivers/spi/omap2_mcspi.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c index 951a160fc27f..abb1ffbf3d20 100644 --- a/drivers/spi/omap2_mcspi.c +++ b/drivers/spi/omap2_mcspi.c | |||
@@ -397,7 +397,7 @@ omap2_mcspi_txrx_dma(struct spi_device *spi, struct spi_transfer *xfer) | |||
397 | 397 | ||
398 | if (tx != NULL) { | 398 | if (tx != NULL) { |
399 | wait_for_completion(&mcspi_dma->dma_tx_completion); | 399 | wait_for_completion(&mcspi_dma->dma_tx_completion); |
400 | dma_unmap_single(NULL, xfer->tx_dma, count, DMA_TO_DEVICE); | 400 | dma_unmap_single(&spi->dev, xfer->tx_dma, count, DMA_TO_DEVICE); |
401 | 401 | ||
402 | /* for TX_ONLY mode, be sure all words have shifted out */ | 402 | /* for TX_ONLY mode, be sure all words have shifted out */ |
403 | if (rx == NULL) { | 403 | if (rx == NULL) { |
@@ -412,7 +412,7 @@ omap2_mcspi_txrx_dma(struct spi_device *spi, struct spi_transfer *xfer) | |||
412 | 412 | ||
413 | if (rx != NULL) { | 413 | if (rx != NULL) { |
414 | wait_for_completion(&mcspi_dma->dma_rx_completion); | 414 | wait_for_completion(&mcspi_dma->dma_rx_completion); |
415 | dma_unmap_single(NULL, xfer->rx_dma, count, DMA_FROM_DEVICE); | 415 | dma_unmap_single(&spi->dev, xfer->rx_dma, count, DMA_FROM_DEVICE); |
416 | omap2_mcspi_set_enable(spi, 0); | 416 | omap2_mcspi_set_enable(spi, 0); |
417 | 417 | ||
418 | if (l & OMAP2_MCSPI_CHCONF_TURBO) { | 418 | if (l & OMAP2_MCSPI_CHCONF_TURBO) { |
@@ -1025,11 +1025,6 @@ static int omap2_mcspi_transfer(struct spi_device *spi, struct spi_message *m) | |||
1025 | if (m->is_dma_mapped || len < DMA_MIN_BYTES) | 1025 | if (m->is_dma_mapped || len < DMA_MIN_BYTES) |
1026 | continue; | 1026 | continue; |
1027 | 1027 | ||
1028 | /* Do DMA mapping "early" for better error reporting and | ||
1029 | * dcache use. Note that if dma_unmap_single() ever starts | ||
1030 | * to do real work on ARM, we'd need to clean up mappings | ||
1031 | * for previous transfers on *ALL* exits of this loop... | ||
1032 | */ | ||
1033 | if (tx_buf != NULL) { | 1028 | if (tx_buf != NULL) { |
1034 | t->tx_dma = dma_map_single(&spi->dev, (void *) tx_buf, | 1029 | t->tx_dma = dma_map_single(&spi->dev, (void *) tx_buf, |
1035 | len, DMA_TO_DEVICE); | 1030 | len, DMA_TO_DEVICE); |
@@ -1046,7 +1041,7 @@ static int omap2_mcspi_transfer(struct spi_device *spi, struct spi_message *m) | |||
1046 | dev_dbg(&spi->dev, "dma %cX %d bytes error\n", | 1041 | dev_dbg(&spi->dev, "dma %cX %d bytes error\n", |
1047 | 'R', len); | 1042 | 'R', len); |
1048 | if (tx_buf != NULL) | 1043 | if (tx_buf != NULL) |
1049 | dma_unmap_single(NULL, t->tx_dma, | 1044 | dma_unmap_single(&spi->dev, t->tx_dma, |
1050 | len, DMA_TO_DEVICE); | 1045 | len, DMA_TO_DEVICE); |
1051 | return -EINVAL; | 1046 | return -EINVAL; |
1052 | } | 1047 | } |