~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/u-boot/arch/avr32/include/asm/dma-mapping.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2006 Atmel Corporation
 
3
 *
 
4
 * SPDX-License-Identifier:     GPL-2.0+
 
5
 */
 
6
#ifndef __ASM_AVR32_DMA_MAPPING_H
 
7
#define __ASM_AVR32_DMA_MAPPING_H
 
8
 
 
9
#include <asm/io.h>
 
10
#include <asm/arch/cacheflush.h>
 
11
 
 
12
enum dma_data_direction {
 
13
        DMA_BIDIRECTIONAL       = 0,
 
14
        DMA_TO_DEVICE           = 1,
 
15
        DMA_FROM_DEVICE         = 2,
 
16
};
 
17
extern void *dma_alloc_coherent(size_t len, unsigned long *handle);
 
18
 
 
19
static inline unsigned long dma_map_single(volatile void *vaddr, size_t len,
 
20
                                           enum dma_data_direction dir)
 
21
{
 
22
        extern void __bad_dma_data_direction(void);
 
23
 
 
24
        switch (dir) {
 
25
        case DMA_BIDIRECTIONAL:
 
26
                dcache_flush_range(vaddr, len);
 
27
                break;
 
28
        case DMA_TO_DEVICE:
 
29
                dcache_clean_range(vaddr, len);
 
30
                break;
 
31
        case DMA_FROM_DEVICE:
 
32
                dcache_invalidate_range(vaddr, len);
 
33
                break;
 
34
        default:
 
35
                /* This will cause a linker error */
 
36
                __bad_dma_data_direction();
 
37
        }
 
38
 
 
39
        return virt_to_phys(vaddr);
 
40
}
 
41
 
 
42
static inline void dma_unmap_single(volatile void *vaddr, size_t len,
 
43
                                    unsigned long paddr)
 
44
{
 
45
 
 
46
}
 
47
 
 
48
#endif /* __ASM_AVR32_DMA_MAPPING_H */