diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2014-01-20 13:56:24 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2014-01-20 13:56:24 +0000 |
commit | 11d25cc460a75454a9aa8d3a7c70abb5abcf8d2c (patch) | |
tree | ec4fe2ab7f765c6d86d6b321349f296dbc9afb9b /target/linux/generic/patches-3.13/131-improve_noncoherent_dma_checks.patch | |
parent | 54d11602cc5a312834e38e09158ac55cc3429a86 (diff) | |
download | master-187ad058-11d25cc460a75454a9aa8d3a7c70abb5abcf8d2c.tar.gz master-187ad058-11d25cc460a75454a9aa8d3a7c70abb5abcf8d2c.tar.bz2 master-187ad058-11d25cc460a75454a9aa8d3a7c70abb5abcf8d2c.zip |
[generic]: add initial 3.13 support
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39348 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/patches-3.13/131-improve_noncoherent_dma_checks.patch')
-rw-r--r-- | target/linux/generic/patches-3.13/131-improve_noncoherent_dma_checks.patch | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.13/131-improve_noncoherent_dma_checks.patch b/target/linux/generic/patches-3.13/131-improve_noncoherent_dma_checks.patch new file mode 100644 index 0000000000..47ea50e421 --- /dev/null +++ b/target/linux/generic/patches-3.13/131-improve_noncoherent_dma_checks.patch @@ -0,0 +1,91 @@ +From d593f8fc627f8cdaee9c14e4d22b0770a09baaf1 Mon Sep 17 00:00:00 2001 +From: Felix Fietkau <nbd@openwrt.org> +Date: Thu, 15 Aug 2013 10:47:47 +0200 +Subject: [PATCH] MIPS: improve checks for noncoherent DMA + +Only one MIPS development board actually supports enabling/disabling DMA +coherency at runtime, so it's not a good idea to push the overhead of +checking that configuration setting onto every other supported target as +well. + +Signed-off-by: Felix Fietkau <nbd@openwrt.org> +--- + arch/mips/Kconfig | 6 +++++- + arch/mips/include/asm/dma-coherence.h | 7 +++++++ + arch/mips/include/asm/mach-generic/dma-coherence.h | 4 ---- + arch/mips/mm/dma-default.c | 2 ++ + 4 files changed, 14 insertions(+), 5 deletions(-) + +--- a/arch/mips/Kconfig ++++ b/arch/mips/Kconfig +@@ -303,7 +303,7 @@ config MIPS_MALTA + select CEVT_R4K + select CSRC_R4K + select CSRC_GIC +- select DMA_NONCOHERENT ++ select DMA_MAYBE_COHERENT + select GENERIC_ISA_DMA + select HAVE_PCSPKR_PLATFORM + select IRQ_CPU +@@ -895,6 +895,10 @@ config FW_CFE + config ARCH_DMA_ADDR_T_64BIT + def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT + ++config DMA_MAYBE_COHERENT ++ select DMA_NONCOHERENT ++ bool ++ + config DMA_COHERENT + bool + +--- a/arch/mips/include/asm/dma-coherence.h ++++ b/arch/mips/include/asm/dma-coherence.h +@@ -9,7 +9,16 @@ + #ifndef __ASM_DMA_COHERENCE_H + #define __ASM_DMA_COHERENCE_H + ++#ifdef CONFIG_DMA_MAYBE_COHERENT + extern int coherentio; + extern int hw_coherentio; ++#else ++#ifdef CONFIG_DMA_COHERENT ++#define coherentio 1 ++#else ++#define coherentio 0 ++#endif ++#define hw_coherentio 0 ++#endif /* CONFIG_DMA_MAYBE_COHERENT */ + + #endif +--- a/arch/mips/include/asm/mach-generic/dma-coherence.h ++++ b/arch/mips/include/asm/mach-generic/dma-coherence.h +@@ -49,11 +49,7 @@ static inline int plat_dma_supported(str + + static inline int plat_device_is_coherent(struct device *dev) + { +-#ifdef CONFIG_DMA_COHERENT +- return 1; +-#else + return coherentio; +-#endif + } + + #ifdef CONFIG_SWIOTLB +--- a/arch/mips/mm/dma-default.c ++++ b/arch/mips/mm/dma-default.c +@@ -23,6 +23,7 @@ + + #include <dma-coherence.h> + ++#ifdef CONFIG_DMA_MAYBE_COHERENT + int coherentio = 0; /* User defined DMA coherency from command line. */ + EXPORT_SYMBOL_GPL(coherentio); + int hw_coherentio = 0; /* Actual hardware supported DMA coherency setting. */ +@@ -42,6 +43,7 @@ static int __init setnocoherentio(char * + return 0; + } + early_param("nocoherentio", setnocoherentio); ++#endif + + static inline struct page *dma_addr_to_page(struct device *dev, + dma_addr_t dma_addr) |