We will use plat_device_is_coherent() in generic cases, but it is MIPS-specific now. So we provide a default implementation. BTW, export the symbol hw_coherentio for MIPS if the caller of plat_device_is_coherent() is in a module. Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx> --- arch/mips/include/asm/dma-mapping.h | 1 + arch/mips/mm/dma-default.c | 1 + include/linux/dma-mapping.h | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/arch/mips/include/asm/dma-mapping.h b/arch/mips/include/asm/dma-mapping.h index aba7138..662eca9 100644 --- a/arch/mips/include/asm/dma-mapping.h +++ b/arch/mips/include/asm/dma-mapping.h @@ -8,6 +8,7 @@ #ifndef CONFIG_SGI_IP27 /* Kludge to fix 2.6.39 build for IP27 */ #include <dma-coherence.h> #endif +#define ARCH_HAS_PLAT_DEVICE_IS_COHERENT extern const struct dma_map_ops *mips_dma_map_ops; diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c index 8e78251..b4c74ab 100644 --- a/arch/mips/mm/dma-default.c +++ b/arch/mips/mm/dma-default.c @@ -29,6 +29,7 @@ enum coherent_io_user_state coherentio = IO_COHERENCE_DEFAULT; EXPORT_SYMBOL_GPL(coherentio); int hw_coherentio = 0; /* Actual hardware supported DMA coherency setting. */ +EXPORT_SYMBOL_GPL(hw_coherentio); static int __init setcoherentio(char *str) { diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 29ce981..6517388 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -697,6 +697,14 @@ static inline void *dma_zalloc_coherent(struct device *dev, size_t size, } #ifdef CONFIG_HAS_DMA + +#ifndef ARCH_HAS_PLAT_DEVICE_IS_COHERENT +static inline int plat_device_is_coherent(struct device *dev) +{ + return 1; +} +#endif + static inline int dma_get_cache_alignment(void) { #ifdef ARCH_DMA_MINALIGN -- 2.7.0