Lines Matching refs:xdma
74 xdma_get_iommu_fdt(xdma_controller_t *xdma, xdma_channel_t *xchan) in xdma_get_iommu_fdt() argument
81 node = ofw_bus_get_node(xdma->dma_dev); in xdma_get_iommu_fdt()
87 device_printf(xdma->dev, in xdma_get_iommu_fdt()
95 device_printf(xdma->dev, in xdma_get_iommu_fdt()
109 xdma_channel_alloc(xdma_controller_t *xdma, uint32_t caps) in xdma_channel_alloc() argument
115 xchan->xdma = xdma; in xdma_channel_alloc()
119 if (xdma_get_iommu_fdt(xdma, xchan)) in xdma_channel_alloc()
128 ret = XDMA_CHANNEL_ALLOC(xdma->dma_dev, xchan); in xdma_channel_alloc()
130 device_printf(xdma->dev, in xdma_channel_alloc()
154 TAILQ_INSERT_TAIL(&xdma->channels, xchan, xchan_next); in xdma_channel_alloc()
164 xdma_controller_t *xdma; in xdma_channel_free() local
167 xdma = xchan->xdma; in xdma_channel_free()
168 KASSERT(xdma != NULL, ("xdma is NULL")); in xdma_channel_free()
173 err = XDMA_CHANNEL_FREE(xdma->dma_dev, xchan); in xdma_channel_free()
175 device_printf(xdma->dev, in xdma_channel_free()
195 TAILQ_REMOVE(&xdma->channels, xchan, xchan_next); in xdma_channel_free()
210 xdma_controller_t *xdma; in xdma_setup_intr() local
212 xdma = xchan->xdma; in xdma_setup_intr()
213 KASSERT(xdma != NULL, ("xdma is NULL")); in xdma_setup_intr()
217 device_printf(xdma->dev, in xdma_setup_intr()
243 xdma_controller_t *xdma; in xdma_teardown_intr() local
245 xdma = xchan->xdma; in xdma_teardown_intr()
246 KASSERT(xdma != NULL, ("xdma is NULL")); in xdma_teardown_intr()
250 device_printf(xdma->dev, in xdma_teardown_intr()
267 KASSERT(xchan->xdma != NULL, ("xdma is NULL")); in xdma_teardown_all_intr()
280 xdma_controller_t *xdma; in xdma_request() local
283 xdma = xchan->xdma; in xdma_request()
285 KASSERT(xdma != NULL, ("xdma is NULL")); in xdma_request()
288 ret = XDMA_CHANNEL_REQUEST(xdma->dma_dev, xchan, req); in xdma_request()
290 device_printf(xdma->dev, in xdma_request()
304 xdma_controller_t *xdma; in xdma_control() local
307 xdma = xchan->xdma; in xdma_control()
308 KASSERT(xdma != NULL, ("xdma is NULL")); in xdma_control()
310 ret = XDMA_CHANNEL_CONTROL(xdma->dma_dev, xchan, cmd); in xdma_control()
312 device_printf(xdma->dev, in xdma_control()
327 KASSERT(xchan->xdma != NULL, ("xdma is NULL")); in xdma_callback()
348 xdma_ofw_md_data(xdma_controller_t *xdma, pcell_t *cells, int ncells) in xdma_ofw_md_data() argument
352 ret = XDMA_OFW_MD_DATA(xdma->dma_dev, in xdma_ofw_md_data()
353 cells, ncells, (void **)&xdma->data); in xdma_ofw_md_data()
453 xdma_controller_t *xdma; in xdma_ofw_get() local
502 xdma = malloc(sizeof(struct xdma_controller), in xdma_ofw_get()
504 xdma->dev = dev; in xdma_ofw_get()
505 xdma->dma_dev = dma_dev; in xdma_ofw_get()
507 TAILQ_INIT(&xdma->channels); in xdma_ofw_get()
509 xdma_ofw_md_data(xdma, cells, ncells); in xdma_ofw_get()
512 return (xdma); in xdma_ofw_get()
522 xdma_controller_t *xdma; in xdma_get() local
524 xdma = malloc(sizeof(struct xdma_controller), in xdma_get()
526 xdma->dev = dev; in xdma_get()
527 xdma->dma_dev = dma_dev; in xdma_get()
529 TAILQ_INIT(&xdma->channels); in xdma_get()
531 return (xdma); in xdma_get()
538 xdma_put(xdma_controller_t *xdma) in xdma_put() argument
544 if (!TAILQ_EMPTY(&xdma->channels)) { in xdma_put()
545 device_printf(xdma->dev, "%s: Can't free xDMA\n", __func__); in xdma_put()
549 free(xdma->data, M_DEVBUF); in xdma_put()
550 free(xdma, M_XDMA); in xdma_put()
564 SYSINIT(xdma, SI_SUB_DRIVERS, SI_ORDER_FIRST, xdma_init, NULL);