Lines Matching refs:dev

27 static void *dma_alloc(struct rt_device *dev, rt_size_t size,
29 static void dma_free(struct rt_device *dev, rt_size_t size,
42 static rt_err_t dma_map_coherent_sync_out_data(struct rt_device *dev, in dma_map_coherent_sync_out_data() argument
54 static rt_err_t dma_map_coherent_sync_in_data(struct rt_device *dev, in dma_map_coherent_sync_in_data() argument
68 static rt_err_t dma_map_nocoherent_sync_out_data(struct rt_device *dev, in dma_map_nocoherent_sync_out_data() argument
79 static rt_err_t dma_map_nocoherent_sync_in_data(struct rt_device *dev, in dma_map_nocoherent_sync_in_data() argument
92 rt_inline rt_ubase_t ofw_addr_cpu2dma(struct rt_device *dev, rt_ubase_t addr) in ofw_addr_cpu2dma() argument
94 return (rt_ubase_t)rt_ofw_translate_cpu2dma(dev->ofw_node, addr); in ofw_addr_cpu2dma()
97 rt_inline rt_ubase_t ofw_addr_dma2cpu(struct rt_device *dev, rt_ubase_t addr) in ofw_addr_dma2cpu() argument
99 return (rt_ubase_t)rt_ofw_translate_dma2cpu(dev->ofw_node, addr); in ofw_addr_dma2cpu()
102 static void *ofw_dma_map_alloc(struct rt_device *dev, rt_size_t size, in ofw_dma_map_alloc() argument
105 void *cpu_addr = dma_alloc(dev, size, dma_handle, flags); in ofw_dma_map_alloc()
109 *dma_handle = ofw_addr_cpu2dma(dev, *dma_handle); in ofw_dma_map_alloc()
115 static void ofw_dma_map_free(struct rt_device *dev, rt_size_t size, in ofw_dma_map_free() argument
118 dma_handle = ofw_addr_dma2cpu(dev, dma_handle); in ofw_dma_map_free()
120 dma_free(dev, size, cpu_addr, dma_handle, flags); in ofw_dma_map_free()
123 static rt_err_t ofw_dma_map_sync_out_data(struct rt_device *dev, in ofw_dma_map_sync_out_data() argument
131 err = dma_map_nocoherent_sync_out_data(dev, data, size, dma_handle, flags); in ofw_dma_map_sync_out_data()
135 err = dma_map_coherent_sync_out_data(dev, data, size, dma_handle, flags); in ofw_dma_map_sync_out_data()
140 *dma_handle = ofw_addr_cpu2dma(dev, *dma_handle); in ofw_dma_map_sync_out_data()
146 static rt_err_t ofw_dma_map_sync_in_data(struct rt_device *dev, in ofw_dma_map_sync_in_data() argument
150 dma_handle = ofw_addr_dma2cpu(dev, dma_handle); in ofw_dma_map_sync_in_data()
154 return dma_map_nocoherent_sync_in_data(dev, out_data, size, dma_handle, flags); in ofw_dma_map_sync_in_data()
157 return dma_map_coherent_sync_in_data(dev, out_data, size, dma_handle, flags); in ofw_dma_map_sync_in_data()
168 static const struct rt_dma_map_ops *ofw_device_dma_ops(struct rt_device *dev) in ofw_device_dma_ops() argument
178 struct rt_ofw_node *mem_np, *np = dev->ofw_node; in ofw_device_dma_ops()
205 region.name = rt_dm_dev_get_name(dev); in ofw_device_dma_ops()
219 if (!rt_dma_device_is_coherent(dev)) in ofw_device_dma_ops()
224 dma_pool->dev = dev; in ofw_device_dma_ops()
237 static const struct rt_dma_map_ops *device_dma_ops(struct rt_device *dev) in device_dma_ops() argument
239 const struct rt_dma_map_ops *ops = dev->dma_ops; in device_dma_ops()
247 if (dev->ofw_node && (ops = ofw_device_dma_ops(dev))) in device_dma_ops()
253 if (rt_dma_device_is_coherent(dev)) in device_dma_ops()
262 dev->dma_ops = ops; in device_dma_ops()
315 static void *dma_alloc(struct rt_device *dev, rt_size_t size, in dma_alloc() argument
327 if (!(flags & RT_DMA_F_DEVICE) || pool->dev != dev) in dma_alloc()
387 static void dma_free(struct rt_device *dev, rt_size_t size, in dma_free() argument
410 void *rt_dma_alloc(struct rt_device *dev, rt_size_t size, in rt_dma_alloc() argument
417 if (!dev || !size) in rt_dma_alloc()
422 ops = device_dma_ops(dev); in rt_dma_alloc()
426 dma_buffer = ops->alloc(dev, size, &dma_handle_s, flags); in rt_dma_alloc()
430 dma_buffer = dma_alloc(dev, size, &dma_handle_s, flags); in rt_dma_alloc()
446 void rt_dma_free(struct rt_device *dev, rt_size_t size, in rt_dma_free() argument
451 if (!dev || !size || !cpu_addr) in rt_dma_free()
456 ops = device_dma_ops(dev); in rt_dma_free()
460 ops->free(dev, size, cpu_addr, dma_handle, flags); in rt_dma_free()
464 dma_free(dev, size, cpu_addr, dma_handle, flags); in rt_dma_free()
468 rt_err_t rt_dma_sync_out_data(struct rt_device *dev, void *data, rt_size_t size, in rt_dma_sync_out_data() argument
480 ops = device_dma_ops(dev); in rt_dma_sync_out_data()
481 err = ops->sync_out_data(dev, data, size, &dma_handle_s, flags); in rt_dma_sync_out_data()
491 rt_err_t rt_dma_sync_in_data(struct rt_device *dev, void *out_data, rt_size_t size, in rt_dma_sync_in_data() argument
502 ops = device_dma_ops(dev); in rt_dma_sync_in_data()
503 err = ops->sync_in_data(dev, out_data, size, dma_handle, flags); in rt_dma_sync_in_data()