Lines Matching full:segment

310  * struct xilinx_vdma_tx_segment - Descriptor segment
313 * @phys: Physical address of segment
322 * struct xilinx_axidma_tx_segment - Descriptor segment
325 * @phys: Physical address of segment
334 * struct xilinx_aximcdma_tx_segment - Descriptor segment
337 * @phys: Physical address of segment
346 * struct xilinx_cdma_tx_segment - Descriptor segment
349 * @phys: Physical address of segment
407 * @cyclic_seg_v: Statically allocated segment base for cyclic transfers
631 * xilinx_vdma_alloc_tx_segment - Allocate transaction segment
634 * Return: The allocated segment on success and NULL on failure.
639 struct xilinx_vdma_tx_segment *segment; in xilinx_vdma_alloc_tx_segment() local
642 segment = dma_pool_zalloc(chan->desc_pool, GFP_ATOMIC, &phys); in xilinx_vdma_alloc_tx_segment()
643 if (!segment) in xilinx_vdma_alloc_tx_segment()
646 segment->phys = phys; in xilinx_vdma_alloc_tx_segment()
648 return segment; in xilinx_vdma_alloc_tx_segment()
652 * xilinx_cdma_alloc_tx_segment - Allocate transaction segment
655 * Return: The allocated segment on success and NULL on failure.
660 struct xilinx_cdma_tx_segment *segment; in xilinx_cdma_alloc_tx_segment() local
663 segment = dma_pool_zalloc(chan->desc_pool, GFP_ATOMIC, &phys); in xilinx_cdma_alloc_tx_segment()
664 if (!segment) in xilinx_cdma_alloc_tx_segment()
667 segment->phys = phys; in xilinx_cdma_alloc_tx_segment()
669 return segment; in xilinx_cdma_alloc_tx_segment()
673 * xilinx_axidma_alloc_tx_segment - Allocate transaction segment
676 * Return: The allocated segment on success and NULL on failure.
681 struct xilinx_axidma_tx_segment *segment = NULL; in xilinx_axidma_alloc_tx_segment() local
686 segment = list_first_entry(&chan->free_seg_list, in xilinx_axidma_alloc_tx_segment()
689 list_del(&segment->node); in xilinx_axidma_alloc_tx_segment()
693 if (!segment) in xilinx_axidma_alloc_tx_segment()
694 dev_dbg(chan->dev, "Could not find free tx segment\n"); in xilinx_axidma_alloc_tx_segment()
696 return segment; in xilinx_axidma_alloc_tx_segment()
700 * xilinx_aximcdma_alloc_tx_segment - Allocate transaction segment
703 * Return: The allocated segment on success and NULL on failure.
708 struct xilinx_aximcdma_tx_segment *segment = NULL; in xilinx_aximcdma_alloc_tx_segment() local
713 segment = list_first_entry(&chan->free_seg_list, in xilinx_aximcdma_alloc_tx_segment()
716 list_del(&segment->node); in xilinx_aximcdma_alloc_tx_segment()
720 return segment; in xilinx_aximcdma_alloc_tx_segment()
746 * xilinx_dma_free_tx_segment - Free transaction segment
748 * @segment: DMA transaction segment
751 struct xilinx_axidma_tx_segment *segment) in xilinx_dma_free_tx_segment() argument
753 xilinx_dma_clean_hw_desc(&segment->hw); in xilinx_dma_free_tx_segment()
755 list_add_tail(&segment->node, &chan->free_seg_list); in xilinx_dma_free_tx_segment()
759 * xilinx_mcdma_free_tx_segment - Free transaction segment
761 * @segment: DMA transaction segment
765 segment) in xilinx_mcdma_free_tx_segment()
767 xilinx_mcdma_clean_hw_desc(&segment->hw); in xilinx_mcdma_free_tx_segment()
769 list_add_tail(&segment->node, &chan->free_seg_list); in xilinx_mcdma_free_tx_segment()
773 * xilinx_cdma_free_tx_segment - Free transaction segment
775 * @segment: DMA transaction segment
778 struct xilinx_cdma_tx_segment *segment) in xilinx_cdma_free_tx_segment() argument
780 dma_pool_free(chan->desc_pool, segment, segment->phys); in xilinx_cdma_free_tx_segment()
784 * xilinx_vdma_free_tx_segment - Free transaction segment
786 * @segment: DMA transaction segment
789 struct xilinx_vdma_tx_segment *segment) in xilinx_vdma_free_tx_segment() argument
791 dma_pool_free(chan->desc_pool, segment, segment->phys); in xilinx_vdma_free_tx_segment()
823 struct xilinx_vdma_tx_segment *segment, *next; in xilinx_dma_free_tx_descriptor() local
832 list_for_each_entry_safe(segment, next, &desc->segments, node) { in xilinx_dma_free_tx_descriptor()
833 list_del(&segment->node); in xilinx_dma_free_tx_descriptor()
834 xilinx_vdma_free_tx_segment(chan, segment); in xilinx_dma_free_tx_descriptor()
1110 * so allocating a desc segment during channel allocation for in xilinx_dma_alloc_chan_resources()
1119 "unable to allocate desc segment for cyclic DMA\n"); in xilinx_dma_alloc_chan_resources()
1337 struct xilinx_vdma_tx_segment *segment, *last = NULL; in xilinx_vdma_start_transfer() local
1398 list_for_each_entry(segment, &desc->segments, node) { in xilinx_vdma_start_transfer()
1402 segment->hw.buf_addr, in xilinx_vdma_start_transfer()
1403 segment->hw.buf_addr_msb); in xilinx_vdma_start_transfer()
1407 segment->hw.buf_addr); in xilinx_vdma_start_transfer()
1409 last = segment; in xilinx_vdma_start_transfer()
1478 struct xilinx_cdma_tx_segment *segment; in xilinx_cdma_start_transfer() local
1481 segment = list_first_entry(&head_desc->segments, in xilinx_cdma_start_transfer()
1485 hw = &segment->hw; in xilinx_cdma_start_transfer()
1555 struct xilinx_axidma_tx_segment *segment; in xilinx_dma_start_transfer() local
1558 segment = list_first_entry(&head_desc->segments, in xilinx_dma_start_transfer()
1561 hw = &segment->hw; in xilinx_dma_start_transfer()
2010 struct xilinx_vdma_tx_segment *segment; in xilinx_vdma_dma_prep_interleaved() local
2032 segment = xilinx_vdma_alloc_tx_segment(chan); in xilinx_vdma_dma_prep_interleaved()
2033 if (!segment) in xilinx_vdma_dma_prep_interleaved()
2037 hw = &segment->hw; in xilinx_vdma_dma_prep_interleaved()
2061 /* Insert the segment into the descriptor segments list. */ in xilinx_vdma_dma_prep_interleaved()
2062 list_add_tail(&segment->node, &desc->segments); in xilinx_vdma_dma_prep_interleaved()
2065 segment = list_first_entry(&desc->segments, in xilinx_vdma_dma_prep_interleaved()
2067 desc->async_tx.phys = segment->phys; in xilinx_vdma_dma_prep_interleaved()
2092 struct xilinx_cdma_tx_segment *segment; in xilinx_cdma_prep_memcpy() local
2106 segment = xilinx_cdma_alloc_tx_segment(chan); in xilinx_cdma_prep_memcpy()
2107 if (!segment) in xilinx_cdma_prep_memcpy()
2110 hw = &segment->hw; in xilinx_cdma_prep_memcpy()
2119 /* Insert the segment into the descriptor segments list. */ in xilinx_cdma_prep_memcpy()
2120 list_add_tail(&segment->node, &desc->segments); in xilinx_cdma_prep_memcpy()
2122 desc->async_tx.phys = segment->phys; in xilinx_cdma_prep_memcpy()
2123 hw->next_desc = segment->phys; in xilinx_cdma_prep_memcpy()
2150 struct xilinx_axidma_tx_segment *segment = NULL; in xilinx_dma_prep_slave_sg() local
2176 /* Get a free segment */ in xilinx_dma_prep_slave_sg()
2177 segment = xilinx_axidma_alloc_tx_segment(chan); in xilinx_dma_prep_slave_sg()
2178 if (!segment) in xilinx_dma_prep_slave_sg()
2187 hw = &segment->hw; in xilinx_dma_prep_slave_sg()
2204 * Insert the segment into the descriptor segments in xilinx_dma_prep_slave_sg()
2207 list_add_tail(&segment->node, &desc->segments); in xilinx_dma_prep_slave_sg()
2211 segment = list_first_entry(&desc->segments, in xilinx_dma_prep_slave_sg()
2213 desc->async_tx.phys = segment->phys; in xilinx_dma_prep_slave_sg()
2217 segment->hw.control |= XILINX_DMA_BD_SOP; in xilinx_dma_prep_slave_sg()
2218 segment = list_last_entry(&desc->segments, in xilinx_dma_prep_slave_sg()
2221 segment->hw.control |= XILINX_DMA_BD_EOP; in xilinx_dma_prep_slave_sg()
2249 struct xilinx_axidma_tx_segment *segment, *head_segment, *prev = NULL; in xilinx_dma_prep_dma_cyclic() local
2281 /* Get a free segment */ in xilinx_dma_prep_dma_cyclic()
2282 segment = xilinx_axidma_alloc_tx_segment(chan); in xilinx_dma_prep_dma_cyclic()
2283 if (!segment) in xilinx_dma_prep_dma_cyclic()
2292 hw = &segment->hw; in xilinx_dma_prep_dma_cyclic()
2298 prev->hw.next_desc = segment->phys; in xilinx_dma_prep_dma_cyclic()
2300 prev = segment; in xilinx_dma_prep_dma_cyclic()
2304 * Insert the segment into the descriptor segments in xilinx_dma_prep_dma_cyclic()
2307 list_add_tail(&segment->node, &desc->segments); in xilinx_dma_prep_dma_cyclic()
2320 segment = list_last_entry(&desc->segments, in xilinx_dma_prep_dma_cyclic()
2323 segment->hw.next_desc = (u32) head_segment->phys; in xilinx_dma_prep_dma_cyclic()
2328 segment->hw.control |= XILINX_DMA_BD_EOP; in xilinx_dma_prep_dma_cyclic()
2357 struct xilinx_aximcdma_tx_segment *segment = NULL; in xilinx_mcdma_prep_slave_sg() local
2383 /* Get a free segment */ in xilinx_mcdma_prep_slave_sg()
2384 segment = xilinx_aximcdma_alloc_tx_segment(chan); in xilinx_mcdma_prep_slave_sg()
2385 if (!segment) in xilinx_mcdma_prep_slave_sg()
2394 hw = &segment->hw; in xilinx_mcdma_prep_slave_sg()
2408 * Insert the segment into the descriptor segments in xilinx_mcdma_prep_slave_sg()
2411 list_add_tail(&segment->node, &desc->segments); in xilinx_mcdma_prep_slave_sg()
2415 segment = list_first_entry(&desc->segments, in xilinx_mcdma_prep_slave_sg()
2417 desc->async_tx.phys = segment->phys; in xilinx_mcdma_prep_slave_sg()
2421 segment->hw.control |= XILINX_MCDMA_BD_SOP; in xilinx_mcdma_prep_slave_sg()
2422 segment = list_last_entry(&desc->segments, in xilinx_mcdma_prep_slave_sg()
2425 segment->hw.control |= XILINX_MCDMA_BD_EOP; in xilinx_mcdma_prep_slave_sg()