aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.14/950-0119-dma-bcm2708-Fix-module-compilation-of-CONFIG_DMA_BCM.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0119-dma-bcm2708-Fix-module-compilation-of-CONFIG_DMA_BCM.patch')
-rw-r--r--target/linux/brcm2708/patches-4.14/950-0119-dma-bcm2708-Fix-module-compilation-of-CONFIG_DMA_BCM.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0119-dma-bcm2708-Fix-module-compilation-of-CONFIG_DMA_BCM.patch b/target/linux/brcm2708/patches-4.14/950-0119-dma-bcm2708-Fix-module-compilation-of-CONFIG_DMA_BCM.patch
new file mode 100644
index 0000000000..aff50554a4
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.14/950-0119-dma-bcm2708-Fix-module-compilation-of-CONFIG_DMA_BCM.patch
@@ -0,0 +1,43 @@
+From 6156ba379ce50e8a969e4e87c9e1eddb117a9e4c Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei@gherzan.com>
+Date: Mon, 5 Jun 2017 16:40:38 +0100
+Subject: [PATCH 119/454] dma-bcm2708: Fix module compilation of
+ CONFIG_DMA_BCM2708
+
+bcm2708-dmaengine.c defines functions like bcm_dma_start which are
+defined as well in dma-bcm2708.h as inline versions when
+CONFIG_DMA_BCM2708 is not defined. This works fine when
+CONFIG_DMA_BCM2708 is built in, but when it is selected as module build
+fails with redefinition errors because in the build system when
+CONFIG_DMA_BCM2708 is selected as module, the macro becomes
+CONFIG_DMA_BCM2708_MODULE.
+
+This patch makes the header use CONFIG_DMA_BCM2708_MODULE too when
+available.
+
+Fixes https://github.com/raspberrypi/linux/issues/2056
+
+Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
+---
+ include/linux/platform_data/dma-bcm2708.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/include/linux/platform_data/dma-bcm2708.h
++++ b/include/linux/platform_data/dma-bcm2708.h
+@@ -75,7 +75,7 @@ struct bcm2708_dma_cb {
+ struct scatterlist;
+ struct platform_device;
+
+-#ifdef CONFIG_DMA_BCM2708
++#if defined(CONFIG_DMA_BCM2708) || defined(CONFIG_DMA_BCM2708_MODULE)
+
+ int bcm_sg_suitable_for_dma(struct scatterlist *sg_ptr, int sg_len);
+ void bcm_dma_start(void __iomem *dma_chan_base, dma_addr_t control_block);
+@@ -138,6 +138,6 @@ static inline int bcm_dmaman_remove(stru
+ return 0;
+ }
+
+-#endif /* CONFIG_DMA_BCM2708 */
++#endif /* CONFIG_DMA_BCM2708 || CONFIG_DMA_BCM2708_MODULE */
+
+ #endif /* _PLAT_BCM2708_DMA_H */