diff options
author | Koen Kooi <koen@openembedded.org> | 2007-11-29 13:46:08 +0000 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2007-11-29 13:46:08 +0000 |
commit | fb66e592cba4e91fdb85570cfb51e4110ea75b28 (patch) | |
tree | 018f99af09b92a1ec7734192984798db855ccac7 /packages/linux/linux-2.6.18/atmel_spi-send-zeroes-when-tx_buf-is-not-set.patch | |
parent | 82ef14e73032b4364c7ef2b372f9868f5ceed793 (diff) | |
parent | 8c1a5e33bf439c0274b795cc580a30c5de951df7 (diff) |
propagate from branch 'org.openembedded.dev' (head 0238eff8862126ac83c3f05d7a6fb094feff89e9)
to branch 'org.openembedded.dev.avr32' (head afeaa97ba6962d277699aab10b0b6a8089342824)
Diffstat (limited to 'packages/linux/linux-2.6.18/atmel_spi-send-zeroes-when-tx_buf-is-not-set.patch')
-rw-r--r-- | packages/linux/linux-2.6.18/atmel_spi-send-zeroes-when-tx_buf-is-not-set.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/packages/linux/linux-2.6.18/atmel_spi-send-zeroes-when-tx_buf-is-not-set.patch b/packages/linux/linux-2.6.18/atmel_spi-send-zeroes-when-tx_buf-is-not-set.patch new file mode 100644 index 0000000000..0cf703d3df --- /dev/null +++ b/packages/linux/linux-2.6.18/atmel_spi-send-zeroes-when-tx_buf-is-not-set.patch @@ -0,0 +1,48 @@ +From e9bce56d6d8913505049cde45d800bb69943f166 Mon Sep 17 00:00:00 2001 +From: Nicolas Ferre <nicolas.ferre@rfo.atmel.com> +Date: Tue, 16 Jan 2007 15:15:36 +0100 +Subject: [ATMEL SPI] Send zeroes when tx_buf is not set + +send zeros when tx_buf is not set (according to the new spi +specification by D.Brownell) cf. + http://lkml.org/lkml/2006/12/22/171 + http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4b1badf5d9ddfc46ad075ca5bfc465972c85cc7c + +Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> +--- + drivers/spi/atmel_spi.c | 21 ++++++++++----------- + 1 file changed, 10 insertions(+), 11 deletions(-) + +Index: linux-2.6.18-avr32/drivers/spi/atmel_spi.c +=================================================================== +--- linux-2.6.18-avr32.orig/drivers/spi/atmel_spi.c 2007-01-16 18:20:06.000000000 +0100 ++++ linux-2.6.18-avr32/drivers/spi/atmel_spi.c 2007-01-16 18:20:57.000000000 +0100 +@@ -120,18 +120,17 @@ static void atmel_spi_next_xfer(struct s + 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; ++ tx_dma = as->buffer_dma; ++ if (len > BUFFER_SIZE) ++ len = BUFFER_SIZE; ++ if (xfer->tx_buf) + memcpy(as->buffer, xfer->tx_buf, len); +- dma_sync_single_for_device(&as->pdev->dev, +- as->buffer_dma, len, +- DMA_TO_DEVICE); +- } else { +- /* Send undefined data; rx_dma is handy */ +- tx_dma = rx_dma; +- } ++ else ++ /* no tx data: send zeros */ ++ memset(as->buffer, 0, len); ++ dma_sync_single_for_device(&as->pdev->dev, ++ as->buffer_dma, len, ++ DMA_TO_DEVICE); + } + + spi_writel(as, RPR, rx_dma); |