summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-spi-atmel-dma-min.patch18
-rw-r--r--recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig2
-rw-r--r--recipes-kernel/linux/linux_3.12.27.bb3
3 files changed, 21 insertions, 2 deletions
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-spi-atmel-dma-min.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-spi-atmel-dma-min.patch
new file mode 100644
index 0000000..4aba504
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/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;
diff --git a/recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig b/recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig
index 8950cdd..e0476e8 100644
--- a/recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig
+++ b/recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig
@@ -1425,7 +1425,7 @@ CONFIG_SPI_MASTER=y
# SPI Master Controller Drivers
#
# CONFIG_SPI_ALTERA is not set
-CONFIG_SPI_ATMEL=y
+CONFIG_SPI_ATMEL=m
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_FSL_SPI is not set
diff --git a/recipes-kernel/linux/linux_3.12.27.bb b/recipes-kernel/linux/linux_3.12.27.bb
index eb6029c..53ee211 100644
--- a/recipes-kernel/linux/linux_3.12.27.bb
+++ b/recipes-kernel/linux/linux_3.12.27.bb
@@ -2,7 +2,7 @@ inherit kernel
# mts class to build dtb and append to kernel image
inherit linux-append-dtb
-PR = "r8"
+PR = "r9"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
@@ -23,6 +23,7 @@ COMMON_PATCHES = " \
file://linux-3.12.27-option-telit.patch \
file://linux-3.12-cdc-acm-ignore-exar-devices.patch \
file://linux-3.12-release-rfcomm-port-fix.patch \
+ file://linux-3.12-spi-atmel-dma-min.patch \
"
SRC_URI_append_mtcdt = "\