diff options
-rw-r--r-- | arch/mn10300/include/asm/dma-mapping.h | 65 |
1 files changed, 5 insertions, 60 deletions
diff --git a/arch/mn10300/include/asm/dma-mapping.h b/arch/mn10300/include/asm/dma-mapping.h index ccae8f6c6326..4ed1522b38d2 100644 --- a/arch/mn10300/include/asm/dma-mapping.h +++ b/arch/mn10300/include/asm/dma-mapping.h | |||
@@ -17,6 +17,11 @@ | |||
17 | #include <asm/cache.h> | 17 | #include <asm/cache.h> |
18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
19 | 19 | ||
20 | /* | ||
21 | * See Documentation/DMA-API.txt for the description of how the | ||
22 | * following DMA API should work. | ||
23 | */ | ||
24 | |||
20 | extern void *dma_alloc_coherent(struct device *dev, size_t size, | 25 | extern void *dma_alloc_coherent(struct device *dev, size_t size, |
21 | dma_addr_t *dma_handle, int flag); | 26 | dma_addr_t *dma_handle, int flag); |
22 | 27 | ||
@@ -26,13 +31,6 @@ extern void dma_free_coherent(struct device *dev, size_t size, | |||
26 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent((d), (s), (h), (f)) | 31 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent((d), (s), (h), (f)) |
27 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent((d), (s), (v), (h)) | 32 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent((d), (s), (v), (h)) |
28 | 33 | ||
29 | /* | ||
30 | * Map a single buffer of the indicated size for DMA in streaming mode. The | ||
31 | * 32-bit bus address to use is returned. | ||
32 | * | ||
33 | * Once the device is given the dma address, the device owns this memory until | ||
34 | * either pci_unmap_single or pci_dma_sync_single is performed. | ||
35 | */ | ||
36 | static inline | 34 | static inline |
37 | dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size, | 35 | dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size, |
38 | enum dma_data_direction direction) | 36 | enum dma_data_direction direction) |
@@ -42,14 +40,6 @@ dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size, | |||
42 | return virt_to_bus(ptr); | 40 | return virt_to_bus(ptr); |
43 | } | 41 | } |
44 | 42 | ||
45 | /* | ||
46 | * Unmap a single streaming mode DMA translation. The dma_addr and size must | ||
47 | * match what was provided for in a previous pci_map_single call. All other | ||
48 | * usages are undefined. | ||
49 | * | ||
50 | * After this call, reads by the cpu to the buffer are guarenteed to see | ||
51 | * whatever the device wrote there. | ||
52 | */ | ||
53 | static inline | 43 | static inline |
54 | void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | 44 | void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, |
55 | enum dma_data_direction direction) | 45 | enum dma_data_direction direction) |
@@ -57,20 +47,6 @@ void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | |||
57 | BUG_ON(direction == DMA_NONE); | 47 | BUG_ON(direction == DMA_NONE); |
58 | } | 48 | } |
59 | 49 | ||
60 | /* | ||
61 | * Map a set of buffers described by scatterlist in streaming mode for DMA. | ||
62 | * This is the scather-gather version of the above pci_map_single interface. | ||
63 | * Here the scatter gather list elements are each tagged with the appropriate | ||
64 | * dma address and length. They are obtained via sg_dma_{address,length}(SG). | ||
65 | * | ||
66 | * NOTE: An implementation may be able to use a smaller number of DMA | ||
67 | * address/length pairs than there are SG table elements. (for example | ||
68 | * via virtual mapping capabilities) The routine returns the number of | ||
69 | * addr/length pairs actually used, at most nents. | ||
70 | * | ||
71 | * Device ownership issues as mentioned above for pci_map_single are the same | ||
72 | * here. | ||
73 | */ | ||
74 | static inline | 50 | static inline |
75 | int dma_map_sg(struct device *dev, struct scatterlist *sglist, int nents, | 51 | int dma_map_sg(struct device *dev, struct scatterlist *sglist, int nents, |
76 | enum dma_data_direction direction) | 52 | enum dma_data_direction direction) |
@@ -91,11 +67,6 @@ int dma_map_sg(struct device *dev, struct scatterlist *sglist, int nents, | |||
91 | return nents; | 67 | return nents; |
92 | } | 68 | } |
93 | 69 | ||
94 | /* | ||
95 | * Unmap a set of streaming mode DMA translations. | ||
96 | * Again, cpu read rules concerning calls here are the same as for | ||
97 | * pci_unmap_single() above. | ||
98 | */ | ||
99 | static inline | 70 | static inline |
100 | void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, | 71 | void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, |
101 | enum dma_data_direction direction) | 72 | enum dma_data_direction direction) |
@@ -103,10 +74,6 @@ void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, | |||
103 | BUG_ON(!valid_dma_direction(direction)); | 74 | BUG_ON(!valid_dma_direction(direction)); |
104 | } | 75 | } |
105 | 76 | ||
106 | /* | ||
107 | * pci_{map,unmap}_single_page maps a kernel page to a dma_addr_t. identical | ||
108 | * to pci_map_single, but takes a struct page instead of a virtual address | ||
109 | */ | ||
110 | static inline | 77 | static inline |
111 | dma_addr_t dma_map_page(struct device *dev, struct page *page, | 78 | dma_addr_t dma_map_page(struct device *dev, struct page *page, |
112 | unsigned long offset, size_t size, | 79 | unsigned long offset, size_t size, |
@@ -123,15 +90,6 @@ void dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, | |||
123 | BUG_ON(direction == DMA_NONE); | 90 | BUG_ON(direction == DMA_NONE); |
124 | } | 91 | } |
125 | 92 | ||
126 | /* | ||
127 | * Make physical memory consistent for a single streaming mode DMA translation | ||
128 | * after a transfer. | ||
129 | * | ||
130 | * If you perform a pci_map_single() but wish to interrogate the buffer using | ||
131 | * the cpu, yet do not wish to teardown the PCI dma mapping, you must call this | ||
132 | * function before doing so. At the next point you give the PCI dma address | ||
133 | * back to the card, the device again owns the buffer. | ||
134 | */ | ||
135 | static inline | 93 | static inline |
136 | void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, | 94 | void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, |
137 | size_t size, enum dma_data_direction direction) | 95 | size_t size, enum dma_data_direction direction) |
@@ -161,13 +119,6 @@ dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle, | |||
161 | } | 119 | } |
162 | 120 | ||
163 | 121 | ||
164 | /* | ||
165 | * Make physical memory consistent for a set of streaming mode DMA translations | ||
166 | * after a transfer. | ||
167 | * | ||
168 | * The same as pci_dma_sync_single but for a scatter-gather list, same rules | ||
169 | * and usage. | ||
170 | */ | ||
171 | static inline | 122 | static inline |
172 | void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, | 123 | void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, |
173 | int nelems, enum dma_data_direction direction) | 124 | int nelems, enum dma_data_direction direction) |
@@ -187,12 +138,6 @@ int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) | |||
187 | return 0; | 138 | return 0; |
188 | } | 139 | } |
189 | 140 | ||
190 | /* | ||
191 | * Return whether the given PCI device DMA address mask can be supported | ||
192 | * properly. For example, if your device can only drive the low 24-bits during | ||
193 | * PCI bus mastering, then you would pass 0x00ffffff as the mask to this | ||
194 | * function. | ||
195 | */ | ||
196 | static inline | 141 | static inline |
197 | int dma_supported(struct device *dev, u64 mask) | 142 | int dma_supported(struct device *dev, u64 mask) |
198 | { | 143 | { |