linux/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h
<<
>>
Prefs
   1/*
   2 * This file is subject to the terms and conditions of the GNU General Public
   3 * License.  See the file "COPYING" in the main directory of this archive
   4 * for more details.
   5 *
   6 * Copyright (C) 2006  Ralf Baechle <ralf@linux-mips.org>
   7 *
   8 *
   9 * Similar to mach-generic/dma-coherence.h except
  10 * plat_device_is_coherent hard coded to return 1.
  11 *
  12 */
  13#ifndef __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H
  14#define __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H
  15
  16#include <linux/bug.h>
  17
  18struct device;
  19
  20extern void octeon_pci_dma_init(void);
  21
  22static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,
  23        size_t size)
  24{
  25        BUG();
  26        return 0;
  27}
  28
  29static inline dma_addr_t plat_map_dma_mem_page(struct device *dev,
  30        struct page *page)
  31{
  32        BUG();
  33        return 0;
  34}
  35
  36static inline unsigned long plat_dma_addr_to_phys(struct device *dev,
  37        dma_addr_t dma_addr)
  38{
  39        BUG();
  40        return 0;
  41}
  42
  43static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr,
  44        size_t size, enum dma_data_direction direction)
  45{
  46        BUG();
  47}
  48
  49static inline int plat_dma_supported(struct device *dev, u64 mask)
  50{
  51        BUG();
  52        return 0;
  53}
  54
  55static inline int plat_device_is_coherent(struct device *dev)
  56{
  57        return 1;
  58}
  59
  60static inline void plat_post_dma_flush(struct device *dev)
  61{
  62}
  63
  64static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
  65{
  66        if (!dev->dma_mask)
  67                return false;
  68
  69        return addr + size - 1 <= *dev->dma_mask;
  70}
  71
  72dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr);
  73phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t daddr);
  74
  75struct dma_map_ops;
  76extern const struct dma_map_ops *octeon_pci_dma_map_ops;
  77extern char *octeon_swiotlb;
  78
  79#endif /* __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H */
  80