Lines Matching refs:xd

89 	struct uniphier_xdmac_desc *xd;
132 struct uniphier_xdmac_desc *xd)
140 src_addr = xd->nodes[xd->cur_node].src;
141 dst_addr = xd->nodes[xd->cur_node].dst;
142 its = xd->nodes[xd->cur_node].burst_size;
143 tnum = xd->nodes[xd->cur_node].nr_burst;
149 if (xd->dir == DMA_DEV_TO_MEM) {
158 if (xd->dir == DMA_MEM_TO_DEV) {
220 struct uniphier_xdmac_desc *xd;
222 xd = uniphier_xdmac_next_desc(xc);
223 if (xd)
224 uniphier_xdmac_chan_start(xc, xd);
226 /* set desc to chan regardless of xd is null */
227 xc->xd = xd;
248 } else if ((stat & XDMAC_ID_ENDIDF) && xc->xd) {
249 xc->xd->cur_node++;
250 if (xc->xd->cur_node >= xc->xd->nr_node) {
251 vchan_cookie_complete(&xc->xd->vd);
254 uniphier_xdmac_chan_start(xc, xc->xd);
285 struct uniphier_xdmac_desc *xd;
295 xd = kzalloc(struct_size(xd, nodes, nr), GFP_NOWAIT);
296 if (!xd)
298 xd->nr_node = nr;
302 xd->nodes[i].src = src;
303 xd->nodes[i].dst = dst;
304 xd->nodes[i].burst_size = burst_size;
305 xd->nodes[i].nr_burst = len / burst_size;
312 xd->dir = DMA_MEM_TO_MEM;
313 xd->cur_node = 0;
315 return vchan_tx_prep(vc, &xd->vd, flags);
326 struct uniphier_xdmac_desc *xd;
351 xd = kzalloc(struct_size(xd, nodes, sg_len), GFP_NOWAIT);
352 if (!xd)
354 xd->nr_node = sg_len;
357 xd->nodes[i].src = (direction == DMA_DEV_TO_MEM)
359 xd->nodes[i].dst = (direction == DMA_MEM_TO_DEV)
361 xd->nodes[i].burst_size = maxburst * buswidth;
362 xd->nodes[i].nr_burst =
363 sg_dma_len(sg) / xd->nodes[i].burst_size;
373 if (sg_dma_len(sg) % xd->nodes[i].burst_size) {
376 kfree(xd);
380 if (xd->nodes[i].nr_burst > XDMAC_MAX_WORDS) {
383 kfree(xd);
388 xd->dir = direction;
389 xd->cur_node = 0;
391 return vchan_tx_prep(vc, &xd->vd, flags);
415 if (xc->xd) {
416 vchan_terminate_vdesc(&xc->xd->vd);
417 xc->xd = NULL;
443 if (vchan_issue_pending(vc) && !xc->xd)