summaryrefslogtreecommitdiff
path: root/recipes-kernel/linux/linux-3.12.70/linux-3.12-spi-atmel-dma-min.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-3.12.70/linux-3.12-spi-atmel-dma-min.patch')
-rw-r--r--recipes-kernel/linux/linux-3.12.70/linux-3.12-spi-atmel-dma-min.patch18
1 files changed, 18 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-3.12.70/linux-3.12-spi-atmel-dma-min.patch b/recipes-kernel/linux/linux-3.12.70/linux-3.12-spi-atmel-dma-min.patch
new file mode 100644
index 0000000..4aba504
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.70/linux-3.12-spi-atmel-dma-min.patch
@@ -0,0 +1,18 @@
+Index: linux-3.12.27/drivers/spi/spi-atmel.c
+===================================================================
+--- linux-3.12.27.orig/drivers/spi/spi-atmel.c
++++ linux-3.12.27/drivers/spi/spi-atmel.c
+@@ -187,7 +187,12 @@
+ /* use PIO for small transfers, avoiding DMA setup/teardown overhead and
+ * cache operations; better heuristics consider wordsize and bitrate.
+ */
+-#define DMA_MIN_BYTES 16
++
++/* MTS: set DMA_MIN_BYTES=0 to use DMA all the time due to Rx buffer issues
++ * when switching between smaller PIO and larger DMA transfers
++ * https://lkml.org/lkml/2013/10/21/534
++ */
++#define DMA_MIN_BYTES 0
+
+ struct atmel_spi_dma {
+ struct dma_chan *chan_rx;