diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2006-01-04 09:41:29 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-01-04 09:41:29 -0500 |
commit | 333c9624b728a9e83b741ea75836aa114ec35272 (patch) | |
tree | 607fa3d2d2aa3d2cc3e4c4ebacdf8e7d7b59c565 | |
parent | 109a9378807cb9093a88fbf9707420de97601e14 (diff) |
[ARM] Move ISA DMA bus_to_virt() out of set_dma_addr()
Allow the compiler to optimise the bus_to_virt(virt_to_bus())
transformation in the ARM ISA DMA interface.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/kernel/dma.c | 8 | ||||
-rw-r--r-- | include/asm-arm/dma.h | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/arch/arm/kernel/dma.c b/arch/arm/kernel/dma.c index 8d6381cd8915..3aedada71046 100644 --- a/arch/arm/kernel/dma.c +++ b/arch/arm/kernel/dma.c | |||
@@ -131,7 +131,7 @@ void set_dma_sg (dmach_t channel, struct scatterlist *sg, int nr_sg) | |||
131 | * | 131 | * |
132 | * Copy address to the structure, and set the invalid bit | 132 | * Copy address to the structure, and set the invalid bit |
133 | */ | 133 | */ |
134 | void set_dma_addr (dmach_t channel, unsigned long physaddr) | 134 | void __set_dma_addr (dmach_t channel, void *addr) |
135 | { | 135 | { |
136 | dma_t *dma = dma_chan + channel; | 136 | dma_t *dma = dma_chan + channel; |
137 | 137 | ||
@@ -141,7 +141,7 @@ void set_dma_addr (dmach_t channel, unsigned long physaddr) | |||
141 | 141 | ||
142 | dma->sg = &dma->buf; | 142 | dma->sg = &dma->buf; |
143 | dma->sgcount = 1; | 143 | dma->sgcount = 1; |
144 | dma->buf.__address = bus_to_virt(physaddr); | 144 | dma->buf.__address = addr; |
145 | dma->using_sg = 0; | 145 | dma->using_sg = 0; |
146 | dma->invalid = 1; | 146 | dma->invalid = 1; |
147 | } | 147 | } |
@@ -278,7 +278,7 @@ GLOBAL_ALIAS(get_dma_list, get_dma_residue); | |||
278 | GLOBAL_ALIAS(set_dma_mode, get_dma_residue); | 278 | GLOBAL_ALIAS(set_dma_mode, get_dma_residue); |
279 | GLOBAL_ALIAS(set_dma_page, get_dma_residue); | 279 | GLOBAL_ALIAS(set_dma_page, get_dma_residue); |
280 | GLOBAL_ALIAS(set_dma_count, get_dma_residue); | 280 | GLOBAL_ALIAS(set_dma_count, get_dma_residue); |
281 | GLOBAL_ALIAS(set_dma_addr, get_dma_residue); | 281 | GLOBAL_ALIAS(__set_dma_addr, get_dma_residue); |
282 | GLOBAL_ALIAS(set_dma_sg, get_dma_residue); | 282 | GLOBAL_ALIAS(set_dma_sg, get_dma_residue); |
283 | GLOBAL_ALIAS(set_dma_speed, get_dma_residue); | 283 | GLOBAL_ALIAS(set_dma_speed, get_dma_residue); |
284 | GLOBAL_ALIAS(init_dma, get_dma_residue); | 284 | GLOBAL_ALIAS(init_dma, get_dma_residue); |
@@ -289,7 +289,7 @@ EXPORT_SYMBOL(request_dma); | |||
289 | EXPORT_SYMBOL(free_dma); | 289 | EXPORT_SYMBOL(free_dma); |
290 | EXPORT_SYMBOL(enable_dma); | 290 | EXPORT_SYMBOL(enable_dma); |
291 | EXPORT_SYMBOL(disable_dma); | 291 | EXPORT_SYMBOL(disable_dma); |
292 | EXPORT_SYMBOL(set_dma_addr); | 292 | EXPORT_SYMBOL(__set_dma_addr); |
293 | EXPORT_SYMBOL(set_dma_count); | 293 | EXPORT_SYMBOL(set_dma_count); |
294 | EXPORT_SYMBOL(set_dma_mode); | 294 | EXPORT_SYMBOL(set_dma_mode); |
295 | EXPORT_SYMBOL(set_dma_page); | 295 | EXPORT_SYMBOL(set_dma_page); |
diff --git a/include/asm-arm/dma.h b/include/asm-arm/dma.h index ef41df43a584..1c7087f9364c 100644 --- a/include/asm-arm/dma.h +++ b/include/asm-arm/dma.h | |||
@@ -91,7 +91,9 @@ extern void set_dma_sg(dmach_t channel, struct scatterlist *sg, int nr_sg); | |||
91 | * especially since some DMA architectures don't update the | 91 | * especially since some DMA architectures don't update the |
92 | * DMA address immediately, but defer it to the enable_dma(). | 92 | * DMA address immediately, but defer it to the enable_dma(). |
93 | */ | 93 | */ |
94 | extern void set_dma_addr(dmach_t channel, unsigned long physaddr); | 94 | extern void __set_dma_addr(dmach_t channel, void *addr); |
95 | #define set_dma_addr(channel, addr) \ | ||
96 | __set_dma_addr(channel, bus_to_virt(addr)) | ||
95 | 97 | ||
96 | /* Set the DMA byte count for this channel | 98 | /* Set the DMA byte count for this channel |
97 | * | 99 | * |