diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2006-01-04 10:08:30 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-01-04 10:08:30 -0500 |
commit | 7cdad482974792419cfe4b0affca689170116f49 (patch) | |
tree | f9ee204f8848274ffb3323f425ad039cf4807de6 /arch/arm/kernel/dma.c | |
parent | 333c9624b728a9e83b741ea75836aa114ec35272 (diff) |
[ARM] Remove '__address' from scatterlist and convert to DMA API
The old __address element in struct scatterlist remained from older
kernels because the ARM DMA emulation code made use of it. Move
this field into struct dma_struct, and convert DMA emulation code
to setup a SG entry as required.
Also, convert DMA emulation code to use the new DMA API rather
than the PCI DMA API.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/dma.c')
-rw-r--r-- | arch/arm/kernel/dma.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/arch/arm/kernel/dma.c b/arch/arm/kernel/dma.c index 3aedada71046..913fd947528c 100644 --- a/arch/arm/kernel/dma.c +++ b/arch/arm/kernel/dma.c | |||
@@ -123,7 +123,6 @@ void set_dma_sg (dmach_t channel, struct scatterlist *sg, int nr_sg) | |||
123 | 123 | ||
124 | dma->sg = sg; | 124 | dma->sg = sg; |
125 | dma->sgcount = nr_sg; | 125 | dma->sgcount = nr_sg; |
126 | dma->using_sg = 1; | ||
127 | dma->invalid = 1; | 126 | dma->invalid = 1; |
128 | } | 127 | } |
129 | 128 | ||
@@ -139,10 +138,8 @@ void __set_dma_addr (dmach_t channel, void *addr) | |||
139 | printk(KERN_ERR "dma%d: altering DMA address while " | 138 | printk(KERN_ERR "dma%d: altering DMA address while " |
140 | "DMA active\n", channel); | 139 | "DMA active\n", channel); |
141 | 140 | ||
142 | dma->sg = &dma->buf; | 141 | dma->sg = NULL; |
143 | dma->sgcount = 1; | 142 | dma->addr = addr; |
144 | dma->buf.__address = addr; | ||
145 | dma->using_sg = 0; | ||
146 | dma->invalid = 1; | 143 | dma->invalid = 1; |
147 | } | 144 | } |
148 | 145 | ||
@@ -158,10 +155,8 @@ void set_dma_count (dmach_t channel, unsigned long count) | |||
158 | printk(KERN_ERR "dma%d: altering DMA count while " | 155 | printk(KERN_ERR "dma%d: altering DMA count while " |
159 | "DMA active\n", channel); | 156 | "DMA active\n", channel); |
160 | 157 | ||
161 | dma->sg = &dma->buf; | 158 | dma->sg = NULL; |
162 | dma->sgcount = 1; | 159 | dma->count = count; |
163 | dma->buf.length = count; | ||
164 | dma->using_sg = 0; | ||
165 | dma->invalid = 1; | 160 | dma->invalid = 1; |
166 | } | 161 | } |
167 | 162 | ||