Lines Matching defs:sw_desc

141  * @sw_desc: Tx descriptor pointer
143 static void xdma_link_desc_blocks(struct xdma_desc *sw_desc)
151 for (i = 1; i < sw_desc->dblk_num; i++) {
152 block = &sw_desc->desc_blocks[i - 1];
164 last_blk_desc = (sw_desc->desc_num - 1) & XDMA_DESC_ADJACENT_MASK;
165 if (((sw_desc->dblk_num - 1) & XDMA_DESC_BLOCK_MASK) > 0) {
166 block = &sw_desc->desc_blocks[sw_desc->dblk_num - 2];
172 block = &sw_desc->desc_blocks[sw_desc->dblk_num - 1];
215 struct xdma_desc *sw_desc;
218 sw_desc = to_xdma_desc(vdesc);
219 for (i = 0; i < sw_desc->dblk_num; i++) {
220 if (!sw_desc->desc_blocks[i].virt_addr)
222 dma_pool_free(sw_desc->chan->desc_pool,
223 sw_desc->desc_blocks[i].virt_addr,
224 sw_desc->desc_blocks[i].dma_addr);
226 kfree(sw_desc->desc_blocks);
227 kfree(sw_desc);
238 struct xdma_desc *sw_desc;
245 sw_desc = kzalloc(sizeof(*sw_desc), GFP_NOWAIT);
246 if (!sw_desc)
249 sw_desc->chan = chan;
250 sw_desc->desc_num = desc_num;
252 sw_desc->desc_blocks = kcalloc(dblk_num, sizeof(*sw_desc->desc_blocks),
254 if (!sw_desc->desc_blocks)
257 sw_desc->dblk_num = dblk_num;
258 for (i = 0; i < sw_desc->dblk_num; i++) {
263 sw_desc->desc_blocks[i].virt_addr = addr;
264 sw_desc->desc_blocks[i].dma_addr = dma_addr;
269 xdma_link_desc_blocks(sw_desc);
271 return sw_desc;
274 xdma_free_desc(&sw_desc->vdesc);
461 struct xdma_desc *sw_desc;
469 sw_desc = xdma_alloc_desc(xdma_chan, desc_num);
470 if (!sw_desc)
472 sw_desc->dir = dir;
484 dblk = sw_desc->desc_blocks;
512 tx_desc = vchan_tx_prep(&xdma_chan->vchan, &sw_desc->vdesc, flags);
519 xdma_free_desc(&sw_desc->vdesc);