diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2006-12-06 23:38:56 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 11:39:41 -0500 |
commit | d3fa72e4556ec1f04e46a0d561d9e785ecaa173d (patch) | |
tree | 9c9b51dbecc27e977135b4e4793ea3dc99e8ba66 /include | |
parent | f67637ee4b5d90d41160d755b9a8cca18c394586 (diff) |
[PATCH] Pass struct dev pointer to dma_cache_sync()
Pass struct dev pointer to dma_cache_sync()
dma_cache_sync() is ill-designed in that it does not have a struct device
pointer argument which makes proper support for systems that consist of a
mix of coherent and non-coherent DMA devices hard. Change dma_cache_sync
to take a struct device pointer as first argument and fix all its callers
to pass it.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-alpha/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-avr32/dma-mapping.h | 3 | ||||
-rw-r--r-- | include/asm-cris/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-frv/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-generic/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-i386/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-ia64/dma-mapping.h | 3 | ||||
-rw-r--r-- | include/asm-m68k/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-mips/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-parisc/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-powerpc/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-sh/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-sh64/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-sparc64/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-um/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-x86_64/dma-mapping.h | 3 | ||||
-rw-r--r-- | include/asm-xtensa/dma-mapping.h | 2 |
17 files changed, 20 insertions, 17 deletions
diff --git a/include/asm-alpha/dma-mapping.h b/include/asm-alpha/dma-mapping.h index b274bf6317c7..57e09f5e3424 100644 --- a/include/asm-alpha/dma-mapping.h +++ b/include/asm-alpha/dma-mapping.h | |||
@@ -60,7 +60,7 @@ int dma_set_mask(struct device *dev, u64 mask); | |||
60 | #define dma_sync_single_range(dev, addr, off, size, dir) do { } while (0) | 60 | #define dma_sync_single_range(dev, addr, off, size, dir) do { } while (0) |
61 | #define dma_sync_sg_for_cpu(dev, sg, nents, dir) do { } while (0) | 61 | #define dma_sync_sg_for_cpu(dev, sg, nents, dir) do { } while (0) |
62 | #define dma_sync_sg_for_device(dev, sg, nents, dir) do { } while (0) | 62 | #define dma_sync_sg_for_device(dev, sg, nents, dir) do { } while (0) |
63 | #define dma_cache_sync(va, size, dir) do { } while (0) | 63 | #define dma_cache_sync(dev, va, size, dir) do { } while (0) |
64 | 64 | ||
65 | #define dma_get_cache_alignment() L1_CACHE_BYTES | 65 | #define dma_get_cache_alignment() L1_CACHE_BYTES |
66 | 66 | ||
diff --git a/include/asm-avr32/dma-mapping.h b/include/asm-avr32/dma-mapping.h index 44630be2ee22..0580b5d62bba 100644 --- a/include/asm-avr32/dma-mapping.h +++ b/include/asm-avr32/dma-mapping.h | |||
@@ -8,7 +8,8 @@ | |||
8 | #include <asm/cacheflush.h> | 8 | #include <asm/cacheflush.h> |
9 | #include <asm/io.h> | 9 | #include <asm/io.h> |
10 | 10 | ||
11 | extern void dma_cache_sync(void *vaddr, size_t size, int direction); | 11 | extern void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
12 | int direction); | ||
12 | 13 | ||
13 | /* | 14 | /* |
14 | * Return whether the given device DMA address mask can be supported | 15 | * Return whether the given device DMA address mask can be supported |
diff --git a/include/asm-cris/dma-mapping.h b/include/asm-cris/dma-mapping.h index af704fdd3d0d..662cea70152d 100644 --- a/include/asm-cris/dma-mapping.h +++ b/include/asm-cris/dma-mapping.h | |||
@@ -159,7 +159,7 @@ dma_get_cache_alignment(void) | |||
159 | #define dma_is_consistent(d, h) (1) | 159 | #define dma_is_consistent(d, h) (1) |
160 | 160 | ||
161 | static inline void | 161 | static inline void |
162 | dma_cache_sync(void *vaddr, size_t size, | 162 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
163 | enum dma_data_direction direction) | 163 | enum dma_data_direction direction) |
164 | { | 164 | { |
165 | } | 165 | } |
diff --git a/include/asm-frv/dma-mapping.h b/include/asm-frv/dma-mapping.h index 7b97fc785f72..bcb2df68496e 100644 --- a/include/asm-frv/dma-mapping.h +++ b/include/asm-frv/dma-mapping.h | |||
@@ -175,7 +175,7 @@ int dma_get_cache_alignment(void) | |||
175 | #define dma_is_consistent(d, h) (1) | 175 | #define dma_is_consistent(d, h) (1) |
176 | 176 | ||
177 | static inline | 177 | static inline |
178 | void dma_cache_sync(void *vaddr, size_t size, | 178 | void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
179 | enum dma_data_direction direction) | 179 | enum dma_data_direction direction) |
180 | { | 180 | { |
181 | flush_write_buffers(); | 181 | flush_write_buffers(); |
diff --git a/include/asm-generic/dma-mapping.h b/include/asm-generic/dma-mapping.h index b9be3fc344c7..783ab9944d70 100644 --- a/include/asm-generic/dma-mapping.h +++ b/include/asm-generic/dma-mapping.h | |||
@@ -295,7 +295,7 @@ dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle, | |||
295 | } | 295 | } |
296 | 296 | ||
297 | static inline void | 297 | static inline void |
298 | dma_cache_sync(void *vaddr, size_t size, | 298 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
299 | enum dma_data_direction direction) | 299 | enum dma_data_direction direction) |
300 | { | 300 | { |
301 | /* could define this in terms of the dma_cache ... operations, | 301 | /* could define this in terms of the dma_cache ... operations, |
diff --git a/include/asm-i386/dma-mapping.h b/include/asm-i386/dma-mapping.h index 7da64c9f1738..183eebeebbdc 100644 --- a/include/asm-i386/dma-mapping.h +++ b/include/asm-i386/dma-mapping.h | |||
@@ -159,7 +159,7 @@ dma_get_cache_alignment(void) | |||
159 | #define dma_is_consistent(d, h) (1) | 159 | #define dma_is_consistent(d, h) (1) |
160 | 160 | ||
161 | static inline void | 161 | static inline void |
162 | dma_cache_sync(void *vaddr, size_t size, | 162 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
163 | enum dma_data_direction direction) | 163 | enum dma_data_direction direction) |
164 | { | 164 | { |
165 | flush_write_buffers(); | 165 | flush_write_buffers(); |
diff --git a/include/asm-ia64/dma-mapping.h b/include/asm-ia64/dma-mapping.h index 4b075bc032ec..ebd5887f4b1a 100644 --- a/include/asm-ia64/dma-mapping.h +++ b/include/asm-ia64/dma-mapping.h | |||
@@ -50,7 +50,8 @@ dma_set_mask (struct device *dev, u64 mask) | |||
50 | extern int dma_get_cache_alignment(void); | 50 | extern int dma_get_cache_alignment(void); |
51 | 51 | ||
52 | static inline void | 52 | static inline void |
53 | dma_cache_sync (void *vaddr, size_t size, enum dma_data_direction dir) | 53 | dma_cache_sync (struct device *dev, void *vaddr, size_t size, |
54 | enum dma_data_direction dir) | ||
54 | { | 55 | { |
55 | /* | 56 | /* |
56 | * IA-64 is cache-coherent, so this is mostly a no-op. However, we do need to | 57 | * IA-64 is cache-coherent, so this is mostly a no-op. However, we do need to |
diff --git a/include/asm-m68k/dma-mapping.h b/include/asm-m68k/dma-mapping.h index efc89c12f837..00259ed6fc95 100644 --- a/include/asm-m68k/dma-mapping.h +++ b/include/asm-m68k/dma-mapping.h | |||
@@ -41,7 +41,7 @@ static inline void dma_free_noncoherent(struct device *dev, size_t size, | |||
41 | { | 41 | { |
42 | dma_free_coherent(dev, size, addr, handle); | 42 | dma_free_coherent(dev, size, addr, handle); |
43 | } | 43 | } |
44 | static inline void dma_cache_sync(void *vaddr, size_t size, | 44 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
45 | enum dma_data_direction dir) | 45 | enum dma_data_direction dir) |
46 | { | 46 | { |
47 | /* we use coherent allocation, so not much to do here. */ | 47 | /* we use coherent allocation, so not much to do here. */ |
diff --git a/include/asm-mips/dma-mapping.h b/include/asm-mips/dma-mapping.h index e17f70d7b702..236d1a467cc7 100644 --- a/include/asm-mips/dma-mapping.h +++ b/include/asm-mips/dma-mapping.h | |||
@@ -65,7 +65,7 @@ dma_get_cache_alignment(void) | |||
65 | 65 | ||
66 | extern int dma_is_consistent(struct device *dev, dma_addr_t dma_addr); | 66 | extern int dma_is_consistent(struct device *dev, dma_addr_t dma_addr); |
67 | 67 | ||
68 | extern void dma_cache_sync(void *vaddr, size_t size, | 68 | extern void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
69 | enum dma_data_direction direction); | 69 | enum dma_data_direction direction); |
70 | 70 | ||
71 | #define ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY | 71 | #define ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY |
diff --git a/include/asm-parisc/dma-mapping.h b/include/asm-parisc/dma-mapping.h index c40d48afdc52..66f0b408c669 100644 --- a/include/asm-parisc/dma-mapping.h +++ b/include/asm-parisc/dma-mapping.h | |||
@@ -197,7 +197,7 @@ dma_is_consistent(struct device *dev, dma_addr_t dma_addr) | |||
197 | } | 197 | } |
198 | 198 | ||
199 | static inline void | 199 | static inline void |
200 | dma_cache_sync(void *vaddr, size_t size, | 200 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
201 | enum dma_data_direction direction) | 201 | enum dma_data_direction direction) |
202 | { | 202 | { |
203 | if(hppa_dma_ops->dma_sync_single_for_cpu) | 203 | if(hppa_dma_ops->dma_sync_single_for_cpu) |
diff --git a/include/asm-powerpc/dma-mapping.h b/include/asm-powerpc/dma-mapping.h index 3cf635b53b88..7c7de87bd8ae 100644 --- a/include/asm-powerpc/dma-mapping.h +++ b/include/asm-powerpc/dma-mapping.h | |||
@@ -378,7 +378,7 @@ static inline void dma_sync_single_range_for_device(struct device *dev, | |||
378 | dma_sync_single_for_device(dev, dma_handle, offset + size, direction); | 378 | dma_sync_single_for_device(dev, dma_handle, offset + size, direction); |
379 | } | 379 | } |
380 | 380 | ||
381 | static inline void dma_cache_sync(void *vaddr, size_t size, | 381 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
382 | enum dma_data_direction direction) | 382 | enum dma_data_direction direction) |
383 | { | 383 | { |
384 | BUG_ON(direction == DMA_NONE); | 384 | BUG_ON(direction == DMA_NONE); |
diff --git a/include/asm-sh/dma-mapping.h b/include/asm-sh/dma-mapping.h index 56cd4b977232..37ab0c131a4d 100644 --- a/include/asm-sh/dma-mapping.h +++ b/include/asm-sh/dma-mapping.h | |||
@@ -53,7 +53,7 @@ static inline void dma_free_coherent(struct device *dev, size_t size, | |||
53 | consistent_free(vaddr, size); | 53 | consistent_free(vaddr, size); |
54 | } | 54 | } |
55 | 55 | ||
56 | static inline void dma_cache_sync(void *vaddr, size_t size, | 56 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
57 | enum dma_data_direction dir) | 57 | enum dma_data_direction dir) |
58 | { | 58 | { |
59 | consistent_sync(vaddr, size, (int)dir); | 59 | consistent_sync(vaddr, size, (int)dir); |
diff --git a/include/asm-sh64/dma-mapping.h b/include/asm-sh64/dma-mapping.h index 68e27a8fca31..5efe906c59f7 100644 --- a/include/asm-sh64/dma-mapping.h +++ b/include/asm-sh64/dma-mapping.h | |||
@@ -35,7 +35,7 @@ static inline void dma_free_coherent(struct device *dev, size_t size, | |||
35 | consistent_free(NULL, size, vaddr, dma_handle); | 35 | consistent_free(NULL, size, vaddr, dma_handle); |
36 | } | 36 | } |
37 | 37 | ||
38 | static inline void dma_cache_sync(void *vaddr, size_t size, | 38 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
39 | enum dma_data_direction dir) | 39 | enum dma_data_direction dir) |
40 | { | 40 | { |
41 | dma_cache_wback_inv((unsigned long)vaddr, size); | 41 | dma_cache_wback_inv((unsigned long)vaddr, size); |
diff --git a/include/asm-sparc64/dma-mapping.h b/include/asm-sparc64/dma-mapping.h index 5fe0072f3f82..2f858a2df94a 100644 --- a/include/asm-sparc64/dma-mapping.h +++ b/include/asm-sparc64/dma-mapping.h | |||
@@ -210,7 +210,7 @@ dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle, | |||
210 | } | 210 | } |
211 | 211 | ||
212 | static inline void | 212 | static inline void |
213 | dma_cache_sync(void *vaddr, size_t size, | 213 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
214 | enum dma_data_direction direction) | 214 | enum dma_data_direction direction) |
215 | { | 215 | { |
216 | /* could define this in terms of the dma_cache ... operations, | 216 | /* could define this in terms of the dma_cache ... operations, |
diff --git a/include/asm-um/dma-mapping.h b/include/asm-um/dma-mapping.h index defb5b8307de..f0ee4fb55911 100644 --- a/include/asm-um/dma-mapping.h +++ b/include/asm-um/dma-mapping.h | |||
@@ -112,7 +112,7 @@ dma_sync_single_range(struct device *dev, dma_addr_t dma_handle, | |||
112 | } | 112 | } |
113 | 113 | ||
114 | static inline void | 114 | static inline void |
115 | dma_cache_sync(void *vaddr, size_t size, | 115 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
116 | enum dma_data_direction direction) | 116 | enum dma_data_direction direction) |
117 | { | 117 | { |
118 | BUG(); | 118 | BUG(); |
diff --git a/include/asm-x86_64/dma-mapping.h b/include/asm-x86_64/dma-mapping.h index c8cc4887fba6..be9ec6890723 100644 --- a/include/asm-x86_64/dma-mapping.h +++ b/include/asm-x86_64/dma-mapping.h | |||
@@ -185,7 +185,8 @@ static inline int dma_get_cache_alignment(void) | |||
185 | extern int dma_set_mask(struct device *dev, u64 mask); | 185 | extern int dma_set_mask(struct device *dev, u64 mask); |
186 | 186 | ||
187 | static inline void | 187 | static inline void |
188 | dma_cache_sync(void *vaddr, size_t size, enum dma_data_direction dir) | 188 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
189 | enum dma_data_direction dir) | ||
189 | { | 190 | { |
190 | flush_write_buffers(); | 191 | flush_write_buffers(); |
191 | } | 192 | } |
diff --git a/include/asm-xtensa/dma-mapping.h b/include/asm-xtensa/dma-mapping.h index 827d1dfd9e1d..82b03b3a2ee6 100644 --- a/include/asm-xtensa/dma-mapping.h +++ b/include/asm-xtensa/dma-mapping.h | |||
@@ -173,7 +173,7 @@ dma_get_cache_alignment(void) | |||
173 | #define dma_is_consistent(d, h) (1) | 173 | #define dma_is_consistent(d, h) (1) |
174 | 174 | ||
175 | static inline void | 175 | static inline void |
176 | dma_cache_sync(void *vaddr, size_t size, | 176 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
177 | enum dma_data_direction direction) | 177 | enum dma_data_direction direction) |
178 | { | 178 | { |
179 | consistent_sync(vaddr, size, direction); | 179 | consistent_sync(vaddr, size, direction); |