aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/common
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/common')
-rw-r--r--arch/arm/common/dmabounce.c18
-rw-r--r--arch/arm/common/sa1111.c13
2 files changed, 12 insertions, 19 deletions
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c
index 9d63a01214eb..cbf2165476b0 100644
--- a/arch/arm/common/dmabounce.c
+++ b/arch/arm/common/dmabounce.c
@@ -93,15 +93,12 @@ static void print_alloc_stats(struct dmabounce_device_info *device_info)
93static inline struct dmabounce_device_info * 93static inline struct dmabounce_device_info *
94find_dmabounce_dev(struct device *dev) 94find_dmabounce_dev(struct device *dev)
95{ 95{
96 struct list_head *entry; 96 struct dmabounce_device_info *d;
97
98 list_for_each(entry, &dmabounce_devs) {
99 struct dmabounce_device_info *d =
100 list_entry(entry, struct dmabounce_device_info, node);
101 97
98 list_for_each_entry(d, &dmabounce_devs, node)
102 if (d->dev == dev) 99 if (d->dev == dev)
103 return d; 100 return d;
104 } 101
105 return NULL; 102 return NULL;
106} 103}
107 104
@@ -172,15 +169,11 @@ alloc_safe_buffer(struct dmabounce_device_info *device_info, void *ptr,
172static inline struct safe_buffer * 169static inline struct safe_buffer *
173find_safe_buffer(struct dmabounce_device_info *device_info, dma_addr_t safe_dma_addr) 170find_safe_buffer(struct dmabounce_device_info *device_info, dma_addr_t safe_dma_addr)
174{ 171{
175 struct list_head *entry; 172 struct safe_buffer *b;
176
177 list_for_each(entry, &device_info->safe_buffers) {
178 struct safe_buffer *b =
179 list_entry(entry, struct safe_buffer, node);
180 173
174 list_for_each_entry(b, &device_info->safe_buffers, node)
181 if (b->safe_dma_addr == safe_dma_addr) 175 if (b->safe_dma_addr == safe_dma_addr)
182 return b; 176 return b;
183 }
184 177
185 return NULL; 178 return NULL;
186} 179}
@@ -301,7 +294,6 @@ unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
301 __func__, buf->ptr, (void *) virt_to_dma(dev, buf->ptr), 294 __func__, buf->ptr, (void *) virt_to_dma(dev, buf->ptr),
302 buf->safe, (void *) buf->safe_dma_addr); 295 buf->safe, (void *) buf->safe_dma_addr);
303 296
304
305 DO_STATS ( device_info->bounce_count++ ); 297 DO_STATS ( device_info->bounce_count++ );
306 298
307 if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) { 299 if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) {
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 21fce3414ed1..38c2eb667eb9 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -721,16 +721,17 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
721 return ret; 721 return ret;
722} 722}
723 723
724static int sa1111_remove_one(struct device *dev, void *data)
725{
726 device_unregister(dev);
727 return 0;
728}
729
724static void __sa1111_remove(struct sa1111 *sachip) 730static void __sa1111_remove(struct sa1111 *sachip)
725{ 731{
726 struct list_head *l, *n;
727 void __iomem *irqbase = sachip->base + SA1111_INTC; 732 void __iomem *irqbase = sachip->base + SA1111_INTC;
728 733
729 list_for_each_safe(l, n, &sachip->dev->children) { 734 device_for_each_child(sachip->dev, NULL, sa1111_remove_one);
730 struct device *d = list_to_dev(l);
731
732 device_unregister(d);
733 }
734 735
735 /* disable all IRQs */ 736 /* disable all IRQs */
736 sa1111_writel(0, irqbase + SA1111_INTEN0); 737 sa1111_writel(0, irqbase + SA1111_INTEN0);