aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-4.19/950-0707-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0707-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch')
-rw-r--r--target/linux/bcm27xx/patches-4.19/950-0707-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0707-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch b/target/linux/bcm27xx/patches-4.19/950-0707-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch
new file mode 100644
index 0000000000..27cd2aff50
--- /dev/null
+++ b/target/linux/bcm27xx/patches-4.19/950-0707-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch
@@ -0,0 +1,42 @@
+From cce15c51f1afbb1aa9d5f7779c9f7c0a17b39701 Mon Sep 17 00:00:00 2001
+From: Lukas Wunner <lukas@wunner.de>
+Date: Thu, 9 May 2019 19:03:00 +0200
+Subject: [PATCH] ARM: bcm283x: Enable DMA support for SPI controller
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Without this, the driver for the BCM2835 SPI controller uses interrupt
+mode instead of DMA mode, incurring a significant performance penalty.
+The Foundation's device tree has had these attributes for years, but for
+some reason they were never upstreamed.
+
+They were originally contributed by Noralf Trønnes and Martin Sperl:
+https://github.com/raspberrypi/linux/commit/25f3e064afc8
+https://github.com/raspberrypi/linux/commit/e0edb52b47e6
+
+The DREQ numbers 6 and 7 are documented in section 4.2.1.3 of:
+https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf
+
+Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+Signed-off-by: Lukas Wunner <lukas@wunner.de>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+Reviewed-by: Martin Sperl <kernel@martin.sperl.org>
+Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
+Cc: Martin Sperl <kernel@martin.sperl.org>
+Cc: Noralf Trønnes <noralf@tronnes.org>
+---
+ arch/arm/boot/dts/bcm283x.dtsi | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm283x.dtsi
++++ b/arch/arm/boot/dts/bcm283x.dtsi
+@@ -403,6 +403,8 @@
+ reg = <0x7e204000 0x200>;
+ interrupts = <2 22>;
+ clocks = <&clocks BCM2835_CLOCK_VPU>;
++ dmas = <&dma 6>, <&dma 7>;
++ dma-names = "tx", "rx";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";