Lines Matching refs:desc

128 	struct dma_async_tx_descriptor	desc;  member
162 struct dma_async_tx_descriptor desc; member
245 struct imxdma_desc *desc; in imxdma_chan_is_doing_cyclic() local
248 desc = list_first_entry(&imxdmac->ld_active, struct imxdma_desc, in imxdma_chan_is_doing_cyclic()
250 if (desc->type == IMXDMA_DESC_CYCLIC) in imxdma_chan_is_doing_cyclic()
284 struct imxdma_channel *imxdmac = to_imxdma_chan(d->desc.chan); in imxdma_sg_next()
313 struct imxdma_channel *imxdmac = to_imxdma_chan(d->desc.chan); in imxdma_enable_hw()
434 struct imxdma_desc *desc; in dma_irq_handle_channel() local
443 desc = list_first_entry(&imxdmac->ld_active, in dma_irq_handle_channel()
448 if (desc->sg) { in dma_irq_handle_channel()
450 desc->sg = sg_next(desc->sg); in dma_irq_handle_channel()
452 if (desc->sg) { in dma_irq_handle_channel()
453 imxdma_sg_next(desc); in dma_irq_handle_channel()
516 struct imxdma_channel *imxdmac = to_imxdma_chan(d->desc.chan); in imxdma_xfer_desc()
622 struct imxdma_desc *desc; in imxdma_tasklet() local
632 desc = list_first_entry(&imxdmac->ld_active, struct imxdma_desc, node); in imxdma_tasklet()
641 dma_cookie_complete(&desc->desc); in imxdma_tasklet()
652 desc = list_first_entry(&imxdmac->ld_queue, struct imxdma_desc, in imxdma_tasklet()
655 if (imxdma_xfer_desc(desc) < 0) in imxdma_tasklet()
662 if (desc->desc.callback) in imxdma_tasklet()
663 desc->desc.callback(desc->desc.callback_param); in imxdma_tasklet()
761 struct imxdma_desc *desc; in imxdma_alloc_chan_resources() local
763 desc = kzalloc(sizeof(*desc), GFP_KERNEL); in imxdma_alloc_chan_resources()
764 if (!desc) in imxdma_alloc_chan_resources()
766 __memzero(&desc->desc, sizeof(struct dma_async_tx_descriptor)); in imxdma_alloc_chan_resources()
767 dma_async_tx_descriptor_init(&desc->desc, chan); in imxdma_alloc_chan_resources()
768 desc->desc.tx_submit = imxdma_tx_submit; in imxdma_alloc_chan_resources()
770 desc->desc.flags = DMA_CTRL_ACK; in imxdma_alloc_chan_resources()
771 desc->status = DMA_COMPLETE; in imxdma_alloc_chan_resources()
773 list_add_tail(&desc->node, &imxdmac->ld_free); in imxdma_alloc_chan_resources()
787 struct imxdma_desc *desc, *_desc; in imxdma_free_chan_resources() local
798 list_for_each_entry_safe(desc, _desc, &imxdmac->ld_free, node) { in imxdma_free_chan_resources()
799 kfree(desc); in imxdma_free_chan_resources()
816 struct imxdma_desc *desc; in imxdma_prep_slave_sg() local
822 desc = list_first_entry(&imxdmac->ld_free, struct imxdma_desc, node); in imxdma_prep_slave_sg()
843 desc->type = IMXDMA_DESC_SLAVE_SG; in imxdma_prep_slave_sg()
844 desc->sg = sgl; in imxdma_prep_slave_sg()
845 desc->sgcount = sg_len; in imxdma_prep_slave_sg()
846 desc->len = dma_length; in imxdma_prep_slave_sg()
847 desc->direction = direction; in imxdma_prep_slave_sg()
849 desc->src = imxdmac->per_address; in imxdma_prep_slave_sg()
851 desc->dest = imxdmac->per_address; in imxdma_prep_slave_sg()
853 desc->desc.callback = NULL; in imxdma_prep_slave_sg()
854 desc->desc.callback_param = NULL; in imxdma_prep_slave_sg()
856 return &desc->desc; in imxdma_prep_slave_sg()
866 struct imxdma_desc *desc; in imxdma_prep_dma_cyclic() local
877 desc = list_first_entry(&imxdmac->ld_free, struct imxdma_desc, node); in imxdma_prep_dma_cyclic()
902 desc->type = IMXDMA_DESC_CYCLIC; in imxdma_prep_dma_cyclic()
903 desc->sg = imxdmac->sg_list; in imxdma_prep_dma_cyclic()
904 desc->sgcount = periods; in imxdma_prep_dma_cyclic()
905 desc->len = IMX_DMA_LENGTH_LOOP; in imxdma_prep_dma_cyclic()
906 desc->direction = direction; in imxdma_prep_dma_cyclic()
908 desc->src = imxdmac->per_address; in imxdma_prep_dma_cyclic()
910 desc->dest = imxdmac->per_address; in imxdma_prep_dma_cyclic()
912 desc->desc.callback = NULL; in imxdma_prep_dma_cyclic()
913 desc->desc.callback_param = NULL; in imxdma_prep_dma_cyclic()
915 return &desc->desc; in imxdma_prep_dma_cyclic()
924 struct imxdma_desc *desc; in imxdma_prep_dma_memcpy() local
934 desc = list_first_entry(&imxdmac->ld_free, struct imxdma_desc, node); in imxdma_prep_dma_memcpy()
936 desc->type = IMXDMA_DESC_MEMCPY; in imxdma_prep_dma_memcpy()
937 desc->src = src; in imxdma_prep_dma_memcpy()
938 desc->dest = dest; in imxdma_prep_dma_memcpy()
939 desc->len = len; in imxdma_prep_dma_memcpy()
940 desc->direction = DMA_MEM_TO_MEM; in imxdma_prep_dma_memcpy()
941 desc->config_port = IMX_DMA_MEMSIZE_32 | IMX_DMA_TYPE_LINEAR; in imxdma_prep_dma_memcpy()
942 desc->config_mem = IMX_DMA_MEMSIZE_32 | IMX_DMA_TYPE_LINEAR; in imxdma_prep_dma_memcpy()
943 desc->desc.callback = NULL; in imxdma_prep_dma_memcpy()
944 desc->desc.callback_param = NULL; in imxdma_prep_dma_memcpy()
946 return &desc->desc; in imxdma_prep_dma_memcpy()
955 struct imxdma_desc *desc; in imxdma_prep_dma_interleaved() local
971 desc = list_first_entry(&imxdmac->ld_free, struct imxdma_desc, node); in imxdma_prep_dma_interleaved()
973 desc->type = IMXDMA_DESC_INTERLEAVED; in imxdma_prep_dma_interleaved()
974 desc->src = xt->src_start; in imxdma_prep_dma_interleaved()
975 desc->dest = xt->dst_start; in imxdma_prep_dma_interleaved()
976 desc->x = xt->sgl[0].size; in imxdma_prep_dma_interleaved()
977 desc->y = xt->numf; in imxdma_prep_dma_interleaved()
978 desc->w = xt->sgl[0].icg + desc->x; in imxdma_prep_dma_interleaved()
979 desc->len = desc->x * desc->y; in imxdma_prep_dma_interleaved()
980 desc->direction = DMA_MEM_TO_MEM; in imxdma_prep_dma_interleaved()
981 desc->config_port = IMX_DMA_MEMSIZE_32; in imxdma_prep_dma_interleaved()
982 desc->config_mem = IMX_DMA_MEMSIZE_32; in imxdma_prep_dma_interleaved()
984 desc->config_mem |= IMX_DMA_TYPE_2D; in imxdma_prep_dma_interleaved()
986 desc->config_port |= IMX_DMA_TYPE_2D; in imxdma_prep_dma_interleaved()
987 desc->desc.callback = NULL; in imxdma_prep_dma_interleaved()
988 desc->desc.callback_param = NULL; in imxdma_prep_dma_interleaved()
990 return &desc->desc; in imxdma_prep_dma_interleaved()
997 struct imxdma_desc *desc; in imxdma_issue_pending() local
1003 desc = list_first_entry(&imxdmac->ld_queue, in imxdma_issue_pending()
1006 if (imxdma_xfer_desc(desc) < 0) { in imxdma_issue_pending()