diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2006-12-06 23:38:54 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 11:39:41 -0500 |
commit | f67637ee4b5d90d41160d755b9a8cca18c394586 (patch) | |
tree | dffa1fa32f8e0462c8e46c4f8fefa058be349d6a | |
parent | 83b7b44e1c1e9e493ccd4146558481ab5af0116a (diff) |
[PATCH] Add struct dev pointer to dma_is_consistent()
dma_is_consistent() 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_is_consistent to take a struct device pointer as first argument and fix
the sole caller 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>
-rw-r--r-- | Documentation/DMA-API.txt | 6 | ||||
-rw-r--r-- | arch/mips/mm/dma-coherent.c | 2 | ||||
-rw-r--r-- | arch/mips/mm/dma-ip27.c | 2 | ||||
-rw-r--r-- | arch/mips/mm/dma-ip32.c | 2 | ||||
-rw-r--r-- | arch/mips/mm/dma-noncoherent.c | 2 | ||||
-rw-r--r-- | drivers/scsi/53c700.c | 2 | ||||
-rw-r--r-- | include/asm-alpha/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-arm/dma-mapping.h | 2 | ||||
-rw-r--r-- | include/asm-avr32/dma-mapping.h | 2 | ||||
-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 | 2 | ||||
-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 | 4 | ||||
-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 | 2 | ||||
-rw-r--r-- | include/asm-xtensa/dma-mapping.h | 2 |
22 files changed, 25 insertions, 25 deletions
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt index 8621a064f7e1..3dc1f9125caf 100644 --- a/Documentation/DMA-API.txt +++ b/Documentation/DMA-API.txt | |||
@@ -431,10 +431,10 @@ be identical to those passed in (and returned by | |||
431 | dma_alloc_noncoherent()). | 431 | dma_alloc_noncoherent()). |
432 | 432 | ||
433 | int | 433 | int |
434 | dma_is_consistent(dma_addr_t dma_handle) | 434 | dma_is_consistent(struct device *dev, dma_addr_t dma_handle) |
435 | 435 | ||
436 | returns true if the memory pointed to by the dma_handle is actually | 436 | returns true if the device dev is performing consistent DMA on the memory |
437 | consistent. | 437 | area pointed to by the dma_handle. |
438 | 438 | ||
439 | int | 439 | int |
440 | dma_get_cache_alignment(void) | 440 | dma_get_cache_alignment(void) |
diff --git a/arch/mips/mm/dma-coherent.c b/arch/mips/mm/dma-coherent.c index 7fa5fd16e46b..18bc83e577c1 100644 --- a/arch/mips/mm/dma-coherent.c +++ b/arch/mips/mm/dma-coherent.c | |||
@@ -190,7 +190,7 @@ int dma_supported(struct device *dev, u64 mask) | |||
190 | 190 | ||
191 | EXPORT_SYMBOL(dma_supported); | 191 | EXPORT_SYMBOL(dma_supported); |
192 | 192 | ||
193 | int dma_is_consistent(dma_addr_t dma_addr) | 193 | int dma_is_consistent(struct device *dev, dma_addr_t dma_addr) |
194 | { | 194 | { |
195 | return 1; | 195 | return 1; |
196 | } | 196 | } |
diff --git a/arch/mips/mm/dma-ip27.c b/arch/mips/mm/dma-ip27.c index 8da19fd22ac6..8e9a5a8f5d65 100644 --- a/arch/mips/mm/dma-ip27.c +++ b/arch/mips/mm/dma-ip27.c | |||
@@ -197,7 +197,7 @@ int dma_supported(struct device *dev, u64 mask) | |||
197 | 197 | ||
198 | EXPORT_SYMBOL(dma_supported); | 198 | EXPORT_SYMBOL(dma_supported); |
199 | 199 | ||
200 | int dma_is_consistent(dma_addr_t dma_addr) | 200 | int dma_is_consistent(struct device *dev, dma_addr_t dma_addr) |
201 | { | 201 | { |
202 | return 1; | 202 | return 1; |
203 | } | 203 | } |
diff --git a/arch/mips/mm/dma-ip32.c b/arch/mips/mm/dma-ip32.c index ec54ed0d26ff..08720a42100f 100644 --- a/arch/mips/mm/dma-ip32.c +++ b/arch/mips/mm/dma-ip32.c | |||
@@ -363,7 +363,7 @@ int dma_supported(struct device *dev, u64 mask) | |||
363 | 363 | ||
364 | EXPORT_SYMBOL(dma_supported); | 364 | EXPORT_SYMBOL(dma_supported); |
365 | 365 | ||
366 | int dma_is_consistent(dma_addr_t dma_addr) | 366 | int dma_is_consistent(struct device *dev, dma_addr_t dma_addr) |
367 | { | 367 | { |
368 | return 1; | 368 | return 1; |
369 | } | 369 | } |
diff --git a/arch/mips/mm/dma-noncoherent.c b/arch/mips/mm/dma-noncoherent.c index 2eeffe5c2a3a..4a3efc633373 100644 --- a/arch/mips/mm/dma-noncoherent.c +++ b/arch/mips/mm/dma-noncoherent.c | |||
@@ -299,7 +299,7 @@ int dma_supported(struct device *dev, u64 mask) | |||
299 | 299 | ||
300 | EXPORT_SYMBOL(dma_supported); | 300 | EXPORT_SYMBOL(dma_supported); |
301 | 301 | ||
302 | int dma_is_consistent(dma_addr_t dma_addr) | 302 | int dma_is_consistent(struct device *dev, dma_addr_t dma_addr) |
303 | { | 303 | { |
304 | return 1; | 304 | return 1; |
305 | } | 305 | } |
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c index 335a25540c08..acee062cd6f6 100644 --- a/drivers/scsi/53c700.c +++ b/drivers/scsi/53c700.c | |||
@@ -313,7 +313,7 @@ NCR_700_detect(struct scsi_host_template *tpnt, | |||
313 | hostdata->status = memory + STATUS_OFFSET; | 313 | hostdata->status = memory + STATUS_OFFSET; |
314 | /* all of these offsets are L1_CACHE_BYTES separated. It is fatal | 314 | /* all of these offsets are L1_CACHE_BYTES separated. It is fatal |
315 | * if this isn't sufficient separation to avoid dma flushing issues */ | 315 | * if this isn't sufficient separation to avoid dma flushing issues */ |
316 | BUG_ON(!dma_is_consistent(pScript) && L1_CACHE_BYTES < dma_get_cache_alignment()); | 316 | BUG_ON(!dma_is_consistent(hostdata->dev, pScript) && L1_CACHE_BYTES < dma_get_cache_alignment()); |
317 | hostdata->slots = (struct NCR_700_command_slot *)(memory + SLOTS_OFFSET); | 317 | hostdata->slots = (struct NCR_700_command_slot *)(memory + SLOTS_OFFSET); |
318 | hostdata->dev = dev; | 318 | hostdata->dev = dev; |
319 | 319 | ||
diff --git a/include/asm-alpha/dma-mapping.h b/include/asm-alpha/dma-mapping.h index b9ff4d8cb33a..b274bf6317c7 100644 --- a/include/asm-alpha/dma-mapping.h +++ b/include/asm-alpha/dma-mapping.h | |||
@@ -51,7 +51,7 @@ int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | |||
51 | 51 | ||
52 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | 52 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) |
53 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | 53 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) |
54 | #define dma_is_consistent(dev) (1) | 54 | #define dma_is_consistent(d, h) (1) |
55 | 55 | ||
56 | int dma_set_mask(struct device *dev, u64 mask); | 56 | int dma_set_mask(struct device *dev, u64 mask); |
57 | 57 | ||
diff --git a/include/asm-arm/dma-mapping.h b/include/asm-arm/dma-mapping.h index 666617711c81..9bc46b486afb 100644 --- a/include/asm-arm/dma-mapping.h +++ b/include/asm-arm/dma-mapping.h | |||
@@ -48,7 +48,7 @@ static inline int dma_get_cache_alignment(void) | |||
48 | return 32; | 48 | return 32; |
49 | } | 49 | } |
50 | 50 | ||
51 | static inline int dma_is_consistent(dma_addr_t handle) | 51 | static inline int dma_is_consistent(struct device *dev, dma_addr_t handle) |
52 | { | 52 | { |
53 | return !!arch_is_coherent(); | 53 | return !!arch_is_coherent(); |
54 | } | 54 | } |
diff --git a/include/asm-avr32/dma-mapping.h b/include/asm-avr32/dma-mapping.h index 4c40cb41cdf8..44630be2ee22 100644 --- a/include/asm-avr32/dma-mapping.h +++ b/include/asm-avr32/dma-mapping.h | |||
@@ -307,7 +307,7 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, | |||
307 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | 307 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) |
308 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | 308 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) |
309 | 309 | ||
310 | static inline int dma_is_consistent(dma_addr_t dma_addr) | 310 | static inline int dma_is_consistent(struct device *dev, dma_addr_t dma_addr) |
311 | { | 311 | { |
312 | return 1; | 312 | return 1; |
313 | } | 313 | } |
diff --git a/include/asm-cris/dma-mapping.h b/include/asm-cris/dma-mapping.h index cbf1a98f0129..af704fdd3d0d 100644 --- a/include/asm-cris/dma-mapping.h +++ b/include/asm-cris/dma-mapping.h | |||
@@ -156,7 +156,7 @@ dma_get_cache_alignment(void) | |||
156 | return (1 << INTERNODE_CACHE_SHIFT); | 156 | return (1 << INTERNODE_CACHE_SHIFT); |
157 | } | 157 | } |
158 | 158 | ||
159 | #define dma_is_consistent(d) (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(void *vaddr, size_t size, |
diff --git a/include/asm-frv/dma-mapping.h b/include/asm-frv/dma-mapping.h index e9fc1d47797e..7b97fc785f72 100644 --- a/include/asm-frv/dma-mapping.h +++ b/include/asm-frv/dma-mapping.h | |||
@@ -172,7 +172,7 @@ int dma_get_cache_alignment(void) | |||
172 | return 1 << L1_CACHE_SHIFT; | 172 | return 1 << L1_CACHE_SHIFT; |
173 | } | 173 | } |
174 | 174 | ||
175 | #define dma_is_consistent(d) (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(void *vaddr, size_t size, |
diff --git a/include/asm-generic/dma-mapping.h b/include/asm-generic/dma-mapping.h index b541e48cc545..b9be3fc344c7 100644 --- a/include/asm-generic/dma-mapping.h +++ b/include/asm-generic/dma-mapping.h | |||
@@ -266,7 +266,7 @@ dma_error(dma_addr_t dma_addr) | |||
266 | 266 | ||
267 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | 267 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) |
268 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | 268 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) |
269 | #define dma_is_consistent(d) (1) | 269 | #define dma_is_consistent(d, h) (1) |
270 | 270 | ||
271 | static inline int | 271 | static inline int |
272 | dma_get_cache_alignment(void) | 272 | dma_get_cache_alignment(void) |
diff --git a/include/asm-i386/dma-mapping.h b/include/asm-i386/dma-mapping.h index 81999a3ebe7c..7da64c9f1738 100644 --- a/include/asm-i386/dma-mapping.h +++ b/include/asm-i386/dma-mapping.h | |||
@@ -156,7 +156,7 @@ dma_get_cache_alignment(void) | |||
156 | return (1 << INTERNODE_CACHE_SHIFT); | 156 | return (1 << INTERNODE_CACHE_SHIFT); |
157 | } | 157 | } |
158 | 158 | ||
159 | #define dma_is_consistent(d) (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(void *vaddr, size_t size, |
diff --git a/include/asm-ia64/dma-mapping.h b/include/asm-ia64/dma-mapping.h index 99a8f8e1218c..4b075bc032ec 100644 --- a/include/asm-ia64/dma-mapping.h +++ b/include/asm-ia64/dma-mapping.h | |||
@@ -59,6 +59,6 @@ dma_cache_sync (void *vaddr, size_t size, enum dma_data_direction dir) | |||
59 | mb(); | 59 | mb(); |
60 | } | 60 | } |
61 | 61 | ||
62 | #define dma_is_consistent(dma_handle) (1) /* all we do is coherent memory... */ | 62 | #define dma_is_consistent(d, h) (1) /* all we do is coherent memory... */ |
63 | 63 | ||
64 | #endif /* _ASM_IA64_DMA_MAPPING_H */ | 64 | #endif /* _ASM_IA64_DMA_MAPPING_H */ |
diff --git a/include/asm-m68k/dma-mapping.h b/include/asm-m68k/dma-mapping.h index d90d841d3dfd..efc89c12f837 100644 --- a/include/asm-m68k/dma-mapping.h +++ b/include/asm-m68k/dma-mapping.h | |||
@@ -21,7 +21,7 @@ static inline int dma_get_cache_alignment(void) | |||
21 | return 1 << L1_CACHE_SHIFT; | 21 | return 1 << L1_CACHE_SHIFT; |
22 | } | 22 | } |
23 | 23 | ||
24 | static inline int dma_is_consistent(dma_addr_t dma_addr) | 24 | static inline int dma_is_consistent(struct device *dev, dma_addr_t dma_addr) |
25 | { | 25 | { |
26 | return 0; | 26 | return 0; |
27 | } | 27 | } |
diff --git a/include/asm-mips/dma-mapping.h b/include/asm-mips/dma-mapping.h index 43288634c38a..e17f70d7b702 100644 --- a/include/asm-mips/dma-mapping.h +++ b/include/asm-mips/dma-mapping.h | |||
@@ -63,7 +63,7 @@ dma_get_cache_alignment(void) | |||
63 | return 128; | 63 | return 128; |
64 | } | 64 | } |
65 | 65 | ||
66 | extern int dma_is_consistent(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(void *vaddr, size_t size, |
69 | enum dma_data_direction direction); | 69 | enum dma_data_direction direction); |
diff --git a/include/asm-parisc/dma-mapping.h b/include/asm-parisc/dma-mapping.h index 1e387e1dad30..c40d48afdc52 100644 --- a/include/asm-parisc/dma-mapping.h +++ b/include/asm-parisc/dma-mapping.h | |||
@@ -191,7 +191,7 @@ dma_get_cache_alignment(void) | |||
191 | } | 191 | } |
192 | 192 | ||
193 | static inline int | 193 | static inline int |
194 | dma_is_consistent(dma_addr_t dma_addr) | 194 | dma_is_consistent(struct device *dev, dma_addr_t dma_addr) |
195 | { | 195 | { |
196 | return (hppa_dma_ops->dma_sync_single_for_cpu == NULL); | 196 | return (hppa_dma_ops->dma_sync_single_for_cpu == NULL); |
197 | } | 197 | } |
diff --git a/include/asm-powerpc/dma-mapping.h b/include/asm-powerpc/dma-mapping.h index 7e38b5fddada..3cf635b53b88 100644 --- a/include/asm-powerpc/dma-mapping.h +++ b/include/asm-powerpc/dma-mapping.h | |||
@@ -342,9 +342,9 @@ static inline int dma_mapping_error(dma_addr_t dma_addr) | |||
342 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | 342 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) |
343 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | 343 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) |
344 | #ifdef CONFIG_NOT_COHERENT_CACHE | 344 | #ifdef CONFIG_NOT_COHERENT_CACHE |
345 | #define dma_is_consistent(d) (0) | 345 | #define dma_is_consistent(d, h) (0) |
346 | #else | 346 | #else |
347 | #define dma_is_consistent(d) (1) | 347 | #define dma_is_consistent(d, h) (1) |
348 | #endif | 348 | #endif |
349 | 349 | ||
350 | static inline int dma_get_cache_alignment(void) | 350 | static inline int dma_get_cache_alignment(void) |
diff --git a/include/asm-sparc64/dma-mapping.h b/include/asm-sparc64/dma-mapping.h index 27c46fbeebd6..5fe0072f3f82 100644 --- a/include/asm-sparc64/dma-mapping.h +++ b/include/asm-sparc64/dma-mapping.h | |||
@@ -181,7 +181,7 @@ dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t siz | |||
181 | 181 | ||
182 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | 182 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) |
183 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | 183 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) |
184 | #define dma_is_consistent(d) (1) | 184 | #define dma_is_consistent(d, h) (1) |
185 | 185 | ||
186 | static inline int | 186 | static inline int |
187 | dma_get_cache_alignment(void) | 187 | dma_get_cache_alignment(void) |
diff --git a/include/asm-um/dma-mapping.h b/include/asm-um/dma-mapping.h index babd29895114..defb5b8307de 100644 --- a/include/asm-um/dma-mapping.h +++ b/include/asm-um/dma-mapping.h | |||
@@ -94,7 +94,7 @@ dma_sync_sg(struct device *dev, struct scatterlist *sg, int nelems, | |||
94 | 94 | ||
95 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | 95 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) |
96 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | 96 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) |
97 | #define dma_is_consistent(d) (1) | 97 | #define dma_is_consistent(d, h) (1) |
98 | 98 | ||
99 | static inline int | 99 | static inline int |
100 | dma_get_cache_alignment(void) | 100 | dma_get_cache_alignment(void) |
diff --git a/include/asm-x86_64/dma-mapping.h b/include/asm-x86_64/dma-mapping.h index 10174b110a5c..c8cc4887fba6 100644 --- a/include/asm-x86_64/dma-mapping.h +++ b/include/asm-x86_64/dma-mapping.h | |||
@@ -180,7 +180,7 @@ static inline int dma_get_cache_alignment(void) | |||
180 | return boot_cpu_data.x86_clflush_size; | 180 | return boot_cpu_data.x86_clflush_size; |
181 | } | 181 | } |
182 | 182 | ||
183 | #define dma_is_consistent(h) 1 | 183 | #define dma_is_consistent(d, h) 1 |
184 | 184 | ||
185 | extern int dma_set_mask(struct device *dev, u64 mask); | 185 | extern int dma_set_mask(struct device *dev, u64 mask); |
186 | 186 | ||
diff --git a/include/asm-xtensa/dma-mapping.h b/include/asm-xtensa/dma-mapping.h index c39c91dfcc69..827d1dfd9e1d 100644 --- a/include/asm-xtensa/dma-mapping.h +++ b/include/asm-xtensa/dma-mapping.h | |||
@@ -170,7 +170,7 @@ dma_get_cache_alignment(void) | |||
170 | return L1_CACHE_BYTES; | 170 | return L1_CACHE_BYTES; |
171 | } | 171 | } |
172 | 172 | ||
173 | #define dma_is_consistent(d) (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(void *vaddr, size_t size, |