linux/arch/mips/include/asm/mach-jazz/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#ifndef __ASM_MACH_JAZZ_DMA_COHERENCE_H
   9#define __ASM_MACH_JAZZ_DMA_COHERENCE_H
  10
  11#include <asm/jazzdma.h>
  12
  13struct device;
  14
  15static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, size_t size)
  16{
  17        return vdma_alloc(virt_to_phys(addr), size);
  18}
  19
  20static inline dma_addr_t plat_map_dma_mem_page(struct device *dev,
  21        struct page *page)
  22{
  23        return vdma_alloc(page_to_phys(page), PAGE_SIZE);
  24}
  25
  26static inline unsigned long plat_dma_addr_to_phys(struct device *dev,
  27        dma_addr_t dma_addr)
  28{
  29        return vdma_log2phys(dma_addr);
  30}
  31
  32static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr,
  33        size_t size, enum dma_data_direction direction)
  34{
  35        vdma_free(dma_addr);
  36}
  37
  38static inline int plat_dma_supported(struct device *dev, u64 mask)
  39{
  40        /*
  41         * we fall back to GFP_DMA when the mask isn't all 1s,
  42         * so we can't guarantee allocations that must be
  43         * within a tighter range than GFP_DMA..
  44         */
  45        if (mask < DMA_BIT_MASK(24))
  46                return 0;
  47
  48        return 1;
  49}
  50
  51static inline void plat_post_dma_flush(struct device *dev)
  52{
  53}
  54
  55static inline int plat_device_is_coherent(struct device *dev)
  56{
  57        return 0;
  58}
  59
  60#endif /* __ASM_MACH_JAZZ_DMA_COHERENCE_H */
  61