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
  16struct device;
  17
  18dma_addr_t octeon_map_dma_mem(struct device *, void *, size_t);
  19void octeon_unmap_dma_mem(struct device *, dma_addr_t);
  20
  21static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,
  22        size_t size)
  23{
  24        return octeon_map_dma_mem(dev, addr, size);
  25}
  26
  27static inline dma_addr_t plat_map_dma_mem_page(struct device *dev,
  28        struct page *page)
  29{
  30        return octeon_map_dma_mem(dev, page_address(page), PAGE_SIZE);
  31}
  32
  33static inline unsigned long plat_dma_addr_to_phys(struct device *dev,
  34        dma_addr_t dma_addr)
  35{
  36        return dma_addr;
  37}
  38
  39static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr,
  40        size_t size, enum dma_data_direction direction)
  41{
  42        octeon_unmap_dma_mem(dev, dma_addr);
  43}
  44
  45static inline int plat_dma_supported(struct device *dev, u64 mask)
  46{
  47        return 1;
  48}
  49
  50static inline void plat_extra_sync_for_device(struct device *dev)
  51{
  52        mb();
  53}
  54
  55static inline int plat_device_is_coherent(struct device *dev)
  56{
  57        return 1;
  58}
  59
  60static inline int plat_dma_mapping_error(struct device *dev,
  61                                         dma_addr_t dma_addr)
  62{
  63        return dma_addr == -1;
  64}
  65
  66#endif /* __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H */
  67