Skip to content
Snippets Groups Projects
Select Git revision
  • c5e2bbb45d28d53d278f25068142a283a0a74f7a
  • panfrost/ci default
  • jakob-v5.4-patch
  • jakob-v5.4
  • jakob-4.19
  • drm-misc-next-with-blob
  • v5.3-hack-boot/ci
  • v5.3/ci
  • v5.2/ci
  • boot-time-improvement
  • jakob-v4.8
  • jakob-v4.9
12 results

dma-mapping.h

Blame
  • user avatar
    Christoph Hellwig authored and Paul Burton committed
    Jazz actually has a very basic IOMMU, so split the ops into a separate
    implementation from the generic default support (which is about to go
    away anyway).
    
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Patchwork: https://patchwork.linux-mips.org/patch/19548/
    
    
    Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: David Daney <david.daney@cavium.com>
    Cc: Kevin Cernekee <cernekee@gmail.com>
    Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: Huacai Chen <chenhc@lemote.com>
    Cc: iommu@lists.linux-foundation.org
    Cc: linux-mips@linux-mips.org
    c5e2bbb4
    History
    dma-mapping.h 1.10 KiB
    /* SPDX-License-Identifier: GPL-2.0 */
    #ifndef _ASM_DMA_MAPPING_H
    #define _ASM_DMA_MAPPING_H
    
    #include <linux/scatterlist.h>
    #include <asm/dma-coherence.h>
    #include <asm/cache.h>
    
    #ifndef CONFIG_SGI_IP27 /* Kludge to fix 2.6.39 build for IP27 */
    #include <dma-coherence.h>
    #endif
    
    extern const struct dma_map_ops jazz_dma_ops;
    extern const struct dma_map_ops mips_default_dma_map_ops;
    extern const struct dma_map_ops mips_swiotlb_ops;
    
    static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
    {
    #if defined(CONFIG_MACH_JAZZ)
    	return &jazz_dma_ops;
    #elif defined(CONFIG_SWIOTLB)
    	return &mips_swiotlb_ops;
    #elif defined(CONFIG_MIPS_DMA_DEFAULT)
    	return &mips_default_dma_map_ops;
    #elif defined(CONFIG_DMA_NONCOHERENT_OPS)
    	return &dma_noncoherent_ops;
    #else
    	return &dma_direct_ops;
    #endif
    }
    
    #define arch_setup_dma_ops arch_setup_dma_ops
    static inline void arch_setup_dma_ops(struct device *dev, u64 dma_base,
    				      u64 size, const struct iommu_ops *iommu,
    				      bool coherent)
    {
    #ifdef CONFIG_DMA_PERDEV_COHERENT
    	dev->archdata.dma_coherent = coherent;
    #endif
    }
    
    #endif /* _ASM_DMA_MAPPING_H */