• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/arm/common/

Lines Matching defs:device_info

91 	struct dmabounce_device_info *device_info = dev->archdata.dmabounce;
93 device_info->small.allocs,
94 device_info->large.allocs,
95 device_info->total_allocs - device_info->small.allocs -
96 device_info->large.allocs,
97 device_info->total_allocs,
98 device_info->map_op_count,
99 device_info->bounce_count);
108 alloc_safe_buffer(struct dmabounce_device_info *device_info, void *ptr,
113 struct device *dev = device_info->dev;
119 if (size <= device_info->small.size) {
120 pool = &device_info->small;
121 } else if (size <= device_info->large.size) {
122 pool = &device_info->large;
157 device_info->total_allocs++;
160 write_lock_irqsave(&device_info->lock, flags);
161 list_add(&buf->node, &device_info->safe_buffers);
162 write_unlock_irqrestore(&device_info->lock, flags);
169 find_safe_buffer(struct dmabounce_device_info *device_info, dma_addr_t safe_dma_addr)
174 read_lock_irqsave(&device_info->lock, flags);
176 list_for_each_entry(b, &device_info->safe_buffers, node)
182 read_unlock_irqrestore(&device_info->lock, flags);
187 free_safe_buffer(struct dmabounce_device_info *device_info, struct safe_buffer *buf)
191 dev_dbg(device_info->dev, "%s(buf=%p)\n", __func__, buf);
193 write_lock_irqsave(&device_info->lock, flags);
197 write_unlock_irqrestore(&device_info->lock, flags);
202 dma_free_coherent(device_info->dev, buf->size, buf->safe,
228 struct dmabounce_device_info *device_info = dev->archdata.dmabounce;
232 if (device_info)
233 DO_STATS ( device_info->map_op_count++ );
254 if (device_info && (needs_bounce || dma_needs_bounce(dev, dma_addr, size))) {
257 buf = alloc_safe_buffer(device_info, ptr, size, dir);
469 struct dmabounce_device_info *device_info;
472 device_info = kmalloc(sizeof(struct dmabounce_device_info), GFP_ATOMIC);
473 if (!device_info) {
479 ret = dmabounce_init_pool(&device_info->small, dev,
489 ret = dmabounce_init_pool(&device_info->large, dev,
500 device_info->dev = dev;
501 INIT_LIST_HEAD(&device_info->safe_buffers);
502 rwlock_init(&device_info->lock);
505 device_info->total_allocs = 0;
506 device_info->map_op_count = 0;
507 device_info->bounce_count = 0;
508 device_info->attr_res = device_create_file(dev, &dev_attr_dmabounce_stats);
511 dev->archdata.dmabounce = device_info;
518 dma_pool_destroy(device_info->small.pool);
520 kfree(device_info);
527 struct dmabounce_device_info *device_info = dev->archdata.dmabounce;
531 if (!device_info) {
538 if (!list_empty(&device_info->safe_buffers)) {
544 if (device_info->small.pool)
545 dma_pool_destroy(device_info->small.pool);
546 if (device_info->large.pool)
547 dma_pool_destroy(device_info->large.pool);
550 if (device_info->attr_res == 0)
554 kfree(device_info);