[linux-yocto] [PATCH 26/28] spi/pxa2xx: change default supported DMA burst size to 1
rebecca.swee.fun.chang at intel.com
rebecca.swee.fun.chang at intel.com
Thu Aug 28 03:52:14 PDT 2014
From: "Chew, Chiau Ee" <chiau.ee.chew at intel.com>
This is to fix the SPI DMA transfer failure for speed less than 1M.
If using current DMA burst size setting (16), the Rx data bytes are
invalid due to each data byte is multiplied according to the burst
size setting.
Let's said supposedly we shall receive the following 18 bytes of data:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
Instead, the data bytes received consist of "16 bytes of '01' +
2 bytes of '02'" :
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 02 02
Signed-off-by: Chew, Chiau Ee <chiau.ee.chew at intel.com>
Acked-by: Mika Westerberg <mika.westerberg at linux.intel.com>
Signed-off-by: Mark Brown <broonie at linaro.org>
(cherry picked from commit 01d7aafb3fbaafe2403780ef9ed497b3289ab1b9)
Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang at intel.com>
---
drivers/spi/spi-pxa2xx-dma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/spi/spi-pxa2xx-dma.c b/drivers/spi/spi-pxa2xx-dma.c
index 07a4625..6fc2bc1 100644
--- a/drivers/spi/spi-pxa2xx-dma.c
+++ b/drivers/spi/spi-pxa2xx-dma.c
@@ -369,7 +369,7 @@ int pxa2xx_spi_set_dma_burst_and_threshold(struct chip_data *chip,
* otherwise we use the default. Also we use the default FIFO
* thresholds for now.
*/
- *burst_code = chip_info ? chip_info->dma_burst_size : 16;
+ *burst_code = chip_info ? chip_info->dma_burst_size : 1;
*threshold = SSCR1_RxTresh(RX_THRESH_DFLT)
| SSCR1_TxTresh(TX_THRESH_DFLT);
--
1.9.1
More information about the linux-yocto
mailing list