Skip to contentSkip to conversation

spi: spi-davinci: Fix direction in dma_map_single()

PATCH Christian Eggers 2 participants 2 messages Apr 18, 2013 SPI

lore
Share & tools
lore
#0 lore raw

Commit 048177ce3b3962852fd34a7e04938959271c7e70 (spi: spi-davinci:
convert to DMA engine API) introduced a regression: dma_map_single() is called with direction DMA_FROM_DEVICE for rx and for tx.

---

spi/spi-davinci.c renamed from spi/spi-davinci.c.orig +1 -1
@@ -608,7 +608,7 @@ static int davinci_spi_bufs(struct spi_d
 		else
 			buf = (void *)t->tx_buf;
 		t->tx_dma = dma_map_single(&spi->dev, buf,
-				t->len, DMA_FROM_DEVICE);
+				t->len, DMA_TO_DEVICE);
 		if (!t->tx_dma) {
 			ret = -EFAULT;
 			goto err_tx_map;

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter

Acked-by
#1 lore raw
Quoted 9 lines · Christian Eggers

Commit 048177ce3b3962852fd34a7e04938959271c7e70 (spi: spi-davinci:

convert to DMA engine API) introduced a regression: dma_map_single()

is called with direction DMA_FROM_DEVICE for rx and for tx.

Cc: [email protected] # v3.7.x+
will get this applied to the correct stable kernels.

I'm wearing the brown bag for this one so other than fixing the Cc: it looks good.

Quoted 22 lines

--- drivers/spi/spi-davinci.c.orig 2013-04-18 20:54:02.728719412 +0200

+++ drivers/spi/spi-davinci.c 2013-04-18 20:54:51.900623956 +0200

(quoted diff) +0 -0
@@ -608,7 +608,7 @@ static int davinci_spi_bufs(struct spi_d
 

else

buf = (void *)t->tx_buf;

t->tx_dma = dma_map_single(&spi->dev, buf,

- t->len, DMA_FROM_DEVICE);

+ t->len, DMA_TO_DEVICE);

if (!t->tx_dma) {

ret = -EFAULT;

goto err_tx_map;