Lines Matching refs:desc
268 struct zynqmp_dma_desc_sw *desc) in zynqmp_dma_update_desc_to_ctrlr() argument
272 addr = desc->src_p; in zynqmp_dma_update_desc_to_ctrlr()
274 addr = desc->dst_p; in zynqmp_dma_update_desc_to_ctrlr()
284 void *desc) in zynqmp_dma_desc_config_eod() argument
286 struct zynqmp_dma_desc_ll *hw = (struct zynqmp_dma_desc_ll *)desc; in zynqmp_dma_desc_config_eod()
372 struct zynqmp_dma_desc_sw *desc, *new; in zynqmp_dma_tx_submit() local
381 desc = list_last_entry(&chan->pending_list, in zynqmp_dma_tx_submit()
383 if (!list_empty(&desc->tx_list)) in zynqmp_dma_tx_submit()
384 desc = list_last_entry(&desc->tx_list, in zynqmp_dma_tx_submit()
386 desc->src_v->nxtdscraddr = new->src_p; in zynqmp_dma_tx_submit()
387 desc->src_v->ctrl &= ~ZYNQMP_DMA_DESC_CTRL_STOP; in zynqmp_dma_tx_submit()
388 desc->dst_v->nxtdscraddr = new->dst_p; in zynqmp_dma_tx_submit()
389 desc->dst_v->ctrl &= ~ZYNQMP_DMA_DESC_CTRL_STOP; in zynqmp_dma_tx_submit()
407 struct zynqmp_dma_desc_sw *desc; in zynqmp_dma_get_descriptor() local
411 desc = list_first_entry(&chan->free_list, in zynqmp_dma_get_descriptor()
413 list_del(&desc->node); in zynqmp_dma_get_descriptor()
416 INIT_LIST_HEAD(&desc->tx_list); in zynqmp_dma_get_descriptor()
418 memset((void *)desc->src_v, 0, ZYNQMP_DMA_DESC_SIZE(chan)); in zynqmp_dma_get_descriptor()
419 memset((void *)desc->dst_v, 0, ZYNQMP_DMA_DESC_SIZE(chan)); in zynqmp_dma_get_descriptor()
421 return desc; in zynqmp_dma_get_descriptor()
450 struct zynqmp_dma_desc_sw *desc, *next; in zynqmp_dma_free_desc_list() local
452 list_for_each_entry_safe(desc, next, list, node) in zynqmp_dma_free_desc_list()
453 zynqmp_dma_free_descriptor(chan, desc); in zynqmp_dma_free_desc_list()
465 struct zynqmp_dma_desc_sw *desc; in zynqmp_dma_alloc_chan_resources() local
472 chan->sw_desc_pool = kcalloc(ZYNQMP_DMA_NUM_DESCS, sizeof(*desc), in zynqmp_dma_alloc_chan_resources()
483 desc = chan->sw_desc_pool + i; in zynqmp_dma_alloc_chan_resources()
484 dma_async_tx_descriptor_init(&desc->async_tx, &chan->common); in zynqmp_dma_alloc_chan_resources()
485 desc->async_tx.tx_submit = zynqmp_dma_tx_submit; in zynqmp_dma_alloc_chan_resources()
486 list_add_tail(&desc->node, &chan->free_list); in zynqmp_dma_alloc_chan_resources()
497 desc = chan->sw_desc_pool + i; in zynqmp_dma_alloc_chan_resources()
498 desc->src_v = (struct zynqmp_dma_desc_ll *) (chan->desc_pool_v + in zynqmp_dma_alloc_chan_resources()
500 desc->dst_v = (struct zynqmp_dma_desc_ll *) (desc->src_v + 1); in zynqmp_dma_alloc_chan_resources()
501 desc->src_p = chan->desc_pool_p + in zynqmp_dma_alloc_chan_resources()
503 desc->dst_p = desc->src_p + ZYNQMP_DMA_DESC_SIZE(chan); in zynqmp_dma_alloc_chan_resources()
580 struct zynqmp_dma_desc_sw *desc; in zynqmp_dma_start_transfer() local
587 desc = list_first_entry_or_null(&chan->pending_list, in zynqmp_dma_start_transfer()
589 if (!desc) in zynqmp_dma_start_transfer()
593 zynqmp_dma_update_desc_to_ctrlr(chan, desc); in zynqmp_dma_start_transfer()
604 struct zynqmp_dma_desc_sw *desc, *next; in zynqmp_dma_chan_desc_cleanup() local
609 list_for_each_entry_safe(desc, next, &chan->done_list, node) { in zynqmp_dma_chan_desc_cleanup()
612 dmaengine_desc_get_callback(&desc->async_tx, &cb); in zynqmp_dma_chan_desc_cleanup()
620 zynqmp_dma_free_descriptor(chan, desc); in zynqmp_dma_chan_desc_cleanup()
632 struct zynqmp_dma_desc_sw *desc; in zynqmp_dma_complete_descriptor() local
634 desc = list_first_entry_or_null(&chan->active_list, in zynqmp_dma_complete_descriptor()
636 if (!desc) in zynqmp_dma_complete_descriptor()
638 list_del(&desc->node); in zynqmp_dma_complete_descriptor()
639 dma_cookie_complete(&desc->async_tx); in zynqmp_dma_complete_descriptor()
640 list_add_tail(&desc->node, &chan->done_list); in zynqmp_dma_complete_descriptor()
826 void *desc = NULL, *prev = NULL; in zynqmp_dma_prep_memcpy() local
849 desc = (struct zynqmp_dma_desc_ll *)new->src_v; in zynqmp_dma_prep_memcpy()
850 zynqmp_dma_config_sg_ll_desc(chan, desc, dma_src, in zynqmp_dma_prep_memcpy()
852 prev = desc; in zynqmp_dma_prep_memcpy()
862 zynqmp_dma_desc_config_eod(chan, desc); in zynqmp_dma_prep_memcpy()