Commit | Line | Data |
---|---|---|
42d226c7 ST |
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, 07 Ralf Baechle <ralf@linux-mips.org> | |
7 | * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology | |
8 | * Author: Fuxin Zhang, zhangfx@lemote.com | |
9 | * | |
10 | */ | |
8e497117 WZ |
11 | #ifndef __ASM_MACH_LOONGSON_DMA_COHERENCE_H |
12 | #define __ASM_MACH_LOONGSON_DMA_COHERENCE_H | |
42d226c7 ST |
13 | |
14 | struct device; | |
15 | ||
16 | static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, | |
17 | size_t size) | |
18 | { | |
19 | return virt_to_phys(addr) | 0x80000000; | |
20 | } | |
21 | ||
22 | static inline dma_addr_t plat_map_dma_mem_page(struct device *dev, | |
23 | struct page *page) | |
24 | { | |
25 | return page_to_phys(page) | 0x80000000; | |
26 | } | |
27 | ||
3807ef3f KC |
28 | static inline unsigned long plat_dma_addr_to_phys(struct device *dev, |
29 | dma_addr_t dma_addr) | |
42d226c7 | 30 | { |
6f7a251a WZ |
31 | #if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT) |
32 | return (dma_addr > 0x8fffffff) ? dma_addr : (dma_addr & 0x0fffffff); | |
33 | #else | |
42d226c7 | 34 | return dma_addr & 0x7fffffff; |
6f7a251a | 35 | #endif |
42d226c7 ST |
36 | } |
37 | ||
d3f634b9 KC |
38 | static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr, |
39 | size_t size, enum dma_data_direction direction) | |
42d226c7 ST |
40 | { |
41 | } | |
42 | ||
843aef49 DD |
43 | static inline int plat_dma_supported(struct device *dev, u64 mask) |
44 | { | |
45 | /* | |
46 | * we fall back to GFP_DMA when the mask isn't all 1s, | |
47 | * so we can't guarantee allocations that must be | |
48 | * within a tighter range than GFP_DMA.. | |
49 | */ | |
50 | if (mask < DMA_BIT_MASK(24)) | |
51 | return 0; | |
52 | ||
53 | return 1; | |
54 | } | |
55 | ||
42d226c7 ST |
56 | static inline int plat_device_is_coherent(struct device *dev) |
57 | { | |
58 | return 0; | |
59 | } | |
60 | ||
8e497117 | 61 | #endif /* __ASM_MACH_LOONGSON_DMA_COHERENCE_H */ |