/freebsd/sys/dev/xdma/ |
H A D | xdma_sg.c | 68 xchan_bufs_free_reserved(xdma_channel_t *xchan) in xchan_bufs_free_reserved() argument 74 for (i = 0; i < xchan->xr_num; i++) { in xchan_bufs_free_reserved() 75 xr = &xchan->xr_mem[i]; in xchan_bufs_free_reserved() 83 vmem_free(xchan->vmem, xr->buf.paddr, size); in xchan_bufs_free_reserved() 91 xchan_bufs_alloc_reserved(xdma_channel_t *xchan) in xchan_bufs_alloc_reserved() argument 99 xdma = xchan->xdma; in xchan_bufs_alloc_reserved() 101 if (xchan->vmem == NULL) in xchan_bufs_alloc_reserved() 104 for (i = 0; i < xchan->xr_num; i++) { in xchan_bufs_alloc_reserved() 105 xr = &xchan->xr_mem[i]; in xchan_bufs_alloc_reserved() 106 size = round_page(xchan->maxsegsize); in xchan_bufs_alloc_reserved() [all …]
|
H A D | xdma.h | 204 #define XCHAN_LOCK(xchan) mtx_lock(&(xchan)->mtx_lock) argument 205 #define XCHAN_UNLOCK(xchan) mtx_unlock(&(xchan)->mtx_lock) argument 206 #define XCHAN_ASSERT_LOCKED(xchan) \ argument 207 mtx_assert(&(xchan)->mtx_lock, MA_OWNED) 209 #define QUEUE_IN_LOCK(xchan) mtx_lock(&(xchan)->mtx_qin_lock) argument 210 #define QUEUE_IN_UNLOCK(xchan) mtx_unlock(&(xchan)->mtx_qin_lock) argument 211 #define QUEUE_IN_ASSERT_LOCKED(xchan) \ argument 212 mtx_assert(&(xchan)->mtx_qin_lock, MA_OWNED) 214 #define QUEUE_OUT_LOCK(xchan) mtx_lock(&(xchan)->mtx_qout_lock) argument 215 #define QUEUE_OUT_UNLOCK(xchan) mtx_unlock(&(xchan)->mtx_qout_lock) argument [all …]
|
H A D | xdma.c | 74 xdma_get_iommu_fdt(xdma_controller_t *xdma, xdma_channel_t *xchan) in xdma_get_iommu_fdt() argument 92 xio = &xchan->xio; in xdma_get_iommu_fdt() 111 xdma_channel_t *xchan; in xdma_channel_alloc() local 114 xchan = malloc(sizeof(xdma_channel_t), M_XDMA, M_WAITOK | M_ZERO); in xdma_channel_alloc() 115 xchan->xdma = xdma; in xdma_channel_alloc() 119 if (xdma_get_iommu_fdt(xdma, xchan)) in xdma_channel_alloc() 123 xchan->caps = caps; in xdma_channel_alloc() 128 ret = XDMA_CHANNEL_ALLOC(xdma->dma_dev, xchan); in xdma_channel_alloc() 133 free(xchan, M_XDMA); in xdma_channel_alloc() 138 TAILQ_INIT(&xchan->ie_handlers); in xdma_channel_alloc() [all …]
|
H A D | xdma_bank.c | 46 xchan_bank_init(xdma_channel_t *xchan) in xchan_bank_init() argument 51 KASSERT(xchan->xdma != NULL, ("xdma is NULL")); in xchan_bank_init() 53 xchan->xr_mem = malloc(sizeof(struct xdma_request) * xchan->xr_num, in xchan_bank_init() 56 for (i = 0; i < xchan->xr_num; i++) { in xchan_bank_init() 57 xr = &xchan->xr_mem[i]; in xchan_bank_init() 58 TAILQ_INSERT_TAIL(&xchan->bank, xr, xr_next); in xchan_bank_init() 63 xchan_bank_free(xdma_channel_t *xchan) in xchan_bank_free() argument 66 free(xchan->xr_mem, M_XDMA); in xchan_bank_free() 72 xchan_bank_get(xdma_channel_t *xchan) in xchan_bank_get() argument 77 QUEUE_BANK_LOCK(xchan); in xchan_bank_get() [all …]
|
H A D | xdma_queue.c | 46 xdma_dequeue(xdma_channel_t *xchan, void **user, in xdma_dequeue() argument 52 QUEUE_OUT_LOCK(xchan); in xdma_dequeue() 53 TAILQ_FOREACH_SAFE(xr, &xchan->queue_out, xr_next, xr_tmp) { in xdma_dequeue() 54 TAILQ_REMOVE(&xchan->queue_out, xr, xr_next); in xdma_dequeue() 57 QUEUE_OUT_UNLOCK(xchan); in xdma_dequeue() 66 xchan_bank_put(xchan, xr); in xdma_dequeue() 72 xdma_enqueue(xdma_channel_t *xchan, uintptr_t src, uintptr_t dst, in xdma_enqueue() argument 78 KASSERT(xchan->xdma != NULL, ("xdma is NULL")); in xdma_enqueue() 80 xr = xchan_bank_get(xchan); in xdma_enqueue() 96 QUEUE_IN_LOCK(xchan); in xdma_enqueue() [all …]
|
H A D | xdma_mbuf.c | 52 xdma_dequeue_mbuf(xdma_channel_t *xchan, struct mbuf **mp, in xdma_dequeue_mbuf() argument 58 QUEUE_OUT_LOCK(xchan); in xdma_dequeue_mbuf() 59 TAILQ_FOREACH_SAFE(xr, &xchan->queue_out, xr_next, xr_tmp) { in xdma_dequeue_mbuf() 60 TAILQ_REMOVE(&xchan->queue_out, xr, xr_next); in xdma_dequeue_mbuf() 63 QUEUE_OUT_UNLOCK(xchan); in xdma_dequeue_mbuf() 72 xchan_bank_put(xchan, xr); in xdma_dequeue_mbuf() 78 xdma_enqueue_mbuf(xdma_channel_t *xchan, struct mbuf **mp, in xdma_enqueue_mbuf() argument 84 xr = xchan_bank_get(xchan); in xdma_enqueue_mbuf() 101 QUEUE_IN_LOCK(xchan); in xdma_enqueue_mbuf() 102 TAILQ_INSERT_TAIL(&xchan->queue_in, xr, xr_next); in xdma_enqueue_mbuf() [all …]
|
H A D | xdma_bio.c | 46 xdma_dequeue_bio(xdma_channel_t *xchan, struct bio **bp, in xdma_dequeue_bio() argument 52 QUEUE_OUT_LOCK(xchan); in xdma_dequeue_bio() 53 TAILQ_FOREACH_SAFE(xr, &xchan->queue_out, xr_next, xr_tmp) { in xdma_dequeue_bio() 54 TAILQ_REMOVE(&xchan->queue_out, xr, xr_next); in xdma_dequeue_bio() 57 QUEUE_OUT_UNLOCK(xchan); in xdma_dequeue_bio() 67 xchan_bank_put(xchan, xr); in xdma_dequeue_bio() 73 xdma_enqueue_bio(xdma_channel_t *xchan, struct bio **bp, in xdma_enqueue_bio() argument 79 xr = xchan_bank_get(xchan); in xdma_enqueue_bio() 96 QUEUE_IN_LOCK(xchan); in xdma_enqueue_bio() 97 TAILQ_INSERT_TAIL(&xchan->queue_in, xr, xr_next); in xdma_enqueue_bio() [all …]
|
H A D | xdma_sglist.c | 44 xchan_sglist_alloc(xdma_channel_t *xchan) in xchan_sglist_alloc() argument 48 if (xchan->flags & XCHAN_SGLIST_ALLOCATED) in xchan_sglist_alloc() 52 xchan->sg = malloc(sz, M_XDMA, M_WAITOK | M_ZERO); in xchan_sglist_alloc() 53 xchan->flags |= XCHAN_SGLIST_ALLOCATED; in xchan_sglist_alloc() 59 xchan_sglist_free(xdma_channel_t *xchan) in xchan_sglist_free() argument 62 if (xchan->flags & XCHAN_SGLIST_ALLOCATED) in xchan_sglist_free() 63 free(xchan->sg, M_XDMA); in xchan_sglist_free() 65 xchan->flags &= ~XCHAN_SGLIST_ALLOCATED; in xchan_sglist_free()
|
H A D | xdma_if.m | 53 struct xdma_channel *xchan; 62 struct xdma_channel *xchan; 71 struct xdma_channel *xchan; 80 struct xdma_channel *xchan; 102 struct xdma_channel *xchan; 110 struct xdma_channel *xchan; 118 struct xdma_channel *xchan;
|
H A D | xdma_iommu.c | 62 xdma_iommu_remove_entry(xdma_channel_t *xchan, vm_offset_t va) in xdma_iommu_remove_entry() argument 66 xio = &xchan->xio; in xdma_iommu_remove_entry() 100 xdma_iommu_add_entry(xdma_channel_t *xchan, vm_offset_t *va, in xdma_iommu_add_entry() argument 107 xio = &xchan->xio; in xdma_iommu_add_entry()
|
H A D | xdma_fdt_test.c | 67 xdma_channel_t *xchan; member 210 sc->xchan = xdma_channel_alloc(sc->xdma); in xdmatest_test() 211 if (sc->xchan == NULL) { in xdmatest_test() 217 err = xdma_setup_intr(sc->xchan, 0, xdmatest_intr, sc, &sc->ih); in xdmatest_test() 242 err = xdma_request(sc->xchan, sc->src_phys, sc->dst_phys, sc->len); in xdmatest_test() 249 xdma_begin(sc->xchan); in xdmatest_test() 272 err = xdma_channel_free(sc->xchan); in xdmatest_verify()
|
/freebsd/sys/dev/xilinx/ |
H A D | axidma.c | 84 xdma_channel_t *xchan; member 145 struct xdma_channel *xchan; in axidma_intr() local 150 xchan = chan->xchan; in axidma_intr() 151 xdma = xchan->xdma; in axidma_intr() 178 xchan_seg_done(xchan, &st); in axidma_intr() 187 xdma_callback(chan->xchan, &status); in axidma_intr() 318 struct xdma_channel *xchan; in axidma_desc_free() local 320 xchan = chan->xchan; in axidma_desc_free() 327 vmem_free(xchan->vmem, chan->mem_paddr, chan->mem_size); in axidma_desc_free() 333 axidma_desc_alloc(struct axidma_softc *sc, struct xdma_channel *xchan, in axidma_desc_alloc() argument [all …]
|
/freebsd/sys/dev/xdma/controller/ |
H A D | pl330.c | 85 xdma_channel_t *xchan; member 156 struct xdma_channel *xchan; in pl330_intr() local 177 xchan = chan->xchan; in pl330_intr() 181 xchan_seg_done(xchan, &st); in pl330_intr() 190 xdma_callback(chan->xchan, &status); in pl330_intr() 371 pl330_channel_alloc(device_t dev, struct xdma_channel *xchan) in pl330_channel_alloc() argument 382 chan->xchan = xchan; in pl330_channel_alloc() 383 xchan->chan = (void *)chan; in pl330_channel_alloc() 384 xchan->caps |= XCHAN_CAP_BUSDMA; in pl330_channel_alloc() 402 pl330_channel_free(device_t dev, struct xdma_channel *xchan) in pl330_channel_free() argument [all …]
|
/freebsd/sys/dev/hyperv/vmbus/ |
H A D | vmbus_chan.c | 790 vmbus_chan_clrchmap_task(void *xchan, int pending __unused) 792 struct vmbus_channel *chan = xchan; in vmbus_chan_clrchmap_task() argument 814 vmbus_chan_poll_cancel_task(void *xchan, int pending __unused) 817 vmbus_chan_poll_cancel_intq(xchan); in vmbus_chan_poll_cancel_task() 1364 vmbus_chan_task(void *xchan, int pending __unused) 1366 struct vmbus_channel *chan = xchan; in vmbus_chan_task() argument 1400 vmbus_chan_task_nobatch(void *xchan, int pending __unused) 1402 struct vmbus_channel *chan = xchan; in vmbus_chan_task_nobatch() argument 1410 vmbus_chan_poll_timeout(void *xchan) 1412 struct vmbus_channel *chan = xchan; in vmbus_chan_poll_timeout() argument 816 vmbus_chan_poll_cancel_task(void * xchan,int pending __unused) vmbus_chan_poll_cancel_task() argument 1422 vmbus_chan_poll_task(void * xchan,int pending __unused) vmbus_chan_poll_task() argument 1521 vmbus_chan_polldis_task(void * xchan,int pending __unused) vmbus_chan_polldis_task() argument 2036 vmbus_prichan_detach_task(void * xchan,int pending __unused) vmbus_prichan_detach_task() argument 2054 vmbus_subchan_detach_task(void * xchan,int pending __unused) vmbus_subchan_detach_task() argument 2077 vmbus_prichan_attach_task(void * xchan,int pending __unused) vmbus_prichan_attach_task() argument [all...] |