Lines Matching refs:txd
148 static void sa11x0_dma_start_desc(struct sa11x0_dma_phy *p, struct sa11x0_dma_desc *txd) in sa11x0_dma_start_desc() argument
150 list_del(&txd->vd.node); in sa11x0_dma_start_desc()
151 p->txd_load = txd; in sa11x0_dma_start_desc()
155 p->num, &txd->vd, txd->vd.tx.cookie, txd->ddar); in sa11x0_dma_start_desc()
161 struct sa11x0_dma_desc *txd = p->txd_load; in sa11x0_dma_start_sg() local
167 if (!txd) in sa11x0_dma_start_sg()
176 if (p->sg_load == txd->sglen) { in sa11x0_dma_start_sg()
177 if (!txd->cyclic) { in sa11x0_dma_start_sg()
185 if (txn && txn->ddar == txd->ddar) { in sa11x0_dma_start_sg()
186 txd = txn; in sa11x0_dma_start_sg()
198 sg = &txd->sg[p->sg_load++]; in sa11x0_dma_start_sg()
225 struct sa11x0_dma_desc *txd = p->txd_done; in sa11x0_dma_complete() local
227 if (++p->sg_done == txd->sglen) { in sa11x0_dma_complete()
228 if (!txd->cyclic) { in sa11x0_dma_complete()
229 vchan_cookie_complete(&txd->vd); in sa11x0_dma_complete()
237 if ((p->sg_done % txd->period) == 0) in sa11x0_dma_complete()
238 vchan_cyclic_callback(&txd->vd); in sa11x0_dma_complete()
301 struct sa11x0_dma_desc *txd = sa11x0_dma_next_desc(c); in sa11x0_dma_start_txd() local
304 if (txd) { in sa11x0_dma_start_txd()
307 sa11x0_dma_start_desc(p, txd); in sa11x0_dma_start_txd()
308 p->txd_done = txd; in sa11x0_dma_start_txd()
318 writel_relaxed(txd->ddar, p->base + DMA_DDAR); in sa11x0_dma_start_txd()
447 struct sa11x0_dma_desc *txd; in sa11x0_dma_tx_status() local
451 txd = p->txd_done; in sa11x0_dma_tx_status()
453 txd = p->txd_load; in sa11x0_dma_tx_status()
455 txd = NULL; in sa11x0_dma_tx_status()
458 if (txd) { in sa11x0_dma_tx_status()
464 for (i = 0; i < txd->sglen; i++) { in sa11x0_dma_tx_status()
466 i, txd->sg[i].addr, txd->sg[i].len); in sa11x0_dma_tx_status()
467 if (addr >= txd->sg[i].addr && in sa11x0_dma_tx_status()
468 addr < txd->sg[i].addr + txd->sg[i].len) { in sa11x0_dma_tx_status()
471 len = txd->sg[i].len - in sa11x0_dma_tx_status()
472 (addr - txd->sg[i].addr); in sa11x0_dma_tx_status()
480 for (; i < txd->sglen; i++) { in sa11x0_dma_tx_status()
482 i, txd->sg[i].addr, txd->sg[i].len); in sa11x0_dma_tx_status()
483 bytes += txd->sg[i].len; in sa11x0_dma_tx_status()
527 struct sa11x0_dma_desc *txd; in sa11x0_dma_prep_slave_sg() local
556 txd = kzalloc(struct_size(txd, sg, j), GFP_ATOMIC); in sa11x0_dma_prep_slave_sg()
557 if (!txd) { in sa11x0_dma_prep_slave_sg()
585 txd->sg[j].addr = addr; in sa11x0_dma_prep_slave_sg()
586 txd->sg[j].len = tlen; in sa11x0_dma_prep_slave_sg()
594 txd->ddar = c->ddar; in sa11x0_dma_prep_slave_sg()
595 txd->size = size; in sa11x0_dma_prep_slave_sg()
596 txd->sglen = j; in sa11x0_dma_prep_slave_sg()
599 &c->vc, &txd->vd, txd->size, txd->sglen); in sa11x0_dma_prep_slave_sg()
601 return vchan_tx_prep(&c->vc, &txd->vd, flags); in sa11x0_dma_prep_slave_sg()
609 struct sa11x0_dma_desc *txd; in sa11x0_dma_prep_dma_cyclic() local
626 txd = kzalloc(struct_size(txd, sg, sglen), GFP_ATOMIC); in sa11x0_dma_prep_dma_cyclic()
627 if (!txd) { in sa11x0_dma_prep_dma_cyclic()
643 txd->sg[k].addr = addr; in sa11x0_dma_prep_dma_cyclic()
644 txd->sg[k].len = tlen; in sa11x0_dma_prep_dma_cyclic()
654 txd->ddar = c->ddar; in sa11x0_dma_prep_dma_cyclic()
655 txd->size = size; in sa11x0_dma_prep_dma_cyclic()
656 txd->sglen = sglen; in sa11x0_dma_prep_dma_cyclic()
657 txd->cyclic = 1; in sa11x0_dma_prep_dma_cyclic()
658 txd->period = sgperiod; in sa11x0_dma_prep_dma_cyclic()
660 return vchan_tx_prep(&c->vc, &txd->vd, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); in sa11x0_dma_prep_dma_cyclic()
1049 struct sa11x0_dma_desc *txd = NULL; in sa11x0_dma_resume() local
1055 txd = p->txd_done; in sa11x0_dma_resume()
1057 txd = p->txd_load; in sa11x0_dma_resume()
1059 if (!txd) in sa11x0_dma_resume()
1062 writel_relaxed(txd->ddar, p->base + DMA_DDAR); in sa11x0_dma_resume()