Lines Matching refs:txd

532 	struct pl08x_txd *txd = to_pl08x_txd(&vd->tx);  in pl08x_start_next_txd()  local
535 list_del(&txd->vd.node); in pl08x_start_next_txd()
537 plchan->at = txd; in pl08x_start_next_txd()
543 pl08x_write_lli(pl08x, phychan, &txd->llis_va[0], txd->ccfg); in pl08x_start_next_txd()
759 struct pl08x_txd *txd; in pl08x_getbytes_chan() local
765 txd = plchan->at; in pl08x_getbytes_chan()
767 if (!ch || !txd) in pl08x_getbytes_chan()
782 llis_va = txd->llis_va; in pl08x_getbytes_chan()
783 llis_bus = txd->llis_bus; in pl08x_getbytes_chan()
1107 struct pl08x_txd *txd; member
1173 u32 *llis_va = bd->txd->llis_va + offset; in pl08x_fill_lli_for_desc()
1174 dma_addr_t llis_bus = bd->txd->llis_bus; in pl08x_fill_lli_for_desc()
1258 struct pl08x_txd *txd) in pl08x_fill_llis_for_desc() argument
1268 txd->llis_va = dma_pool_alloc(pl08x->pool, GFP_NOWAIT, &txd->llis_bus); in pl08x_fill_llis_for_desc()
1269 if (!txd->llis_va) { in pl08x_fill_llis_for_desc()
1274 bd.txd = txd; in pl08x_fill_llis_for_desc()
1276 cctl = txd->cctl; in pl08x_fill_llis_for_desc()
1284 list_for_each_entry(dsg, &txd->dsg_list, node) { in pl08x_fill_llis_for_desc()
1286 cctl = txd->cctl; in pl08x_fill_llis_for_desc()
1337 fc = (txd->ccfg & PL080_CONFIG_FLOW_CONTROL_MASK) >> in pl08x_fill_llis_for_desc()
1471 llis_va = txd->llis_va; in pl08x_fill_llis_for_desc()
1474 if (txd->cyclic) { in pl08x_fill_llis_for_desc()
1476 last_lli[PL080_LLI_LLI] = txd->llis_bus | bd.lli_bus; in pl08x_fill_llis_for_desc()
1493 struct pl08x_txd *txd) in pl08x_free_txd() argument
1497 if (txd->llis_va) in pl08x_free_txd()
1498 dma_pool_free(pl08x->pool, txd->llis_va, txd->llis_bus); in pl08x_free_txd()
1500 list_for_each_entry_safe(dsg, _dsg, &txd->dsg_list, node) { in pl08x_free_txd()
1505 kfree(txd); in pl08x_free_txd()
1510 struct pl08x_txd *txd = to_pl08x_txd(&vd->tx); in pl08x_desc_free() local
1514 if (!txd->done) in pl08x_desc_free()
1517 pl08x_free_txd(plchan->host, txd); in pl08x_desc_free()
1572 struct pl08x_txd *txd = to_pl08x_txd(&vd->tx); in pl08x_dma_tx_status() local
1575 list_for_each_entry(dsg, &txd->dsg_list, node) in pl08x_dma_tx_status()
1746 struct pl08x_txd *txd = kzalloc(sizeof(*txd), GFP_NOWAIT); in pl08x_get_txd() local
1748 if (txd) in pl08x_get_txd()
1749 INIT_LIST_HEAD(&txd->dsg_list); in pl08x_get_txd()
1750 return txd; in pl08x_get_txd()
1887 struct pl08x_txd *txd; in pl08x_prep_dma_memcpy() local
1891 txd = pl08x_get_txd(plchan); in pl08x_prep_dma_memcpy()
1892 if (!txd) { in pl08x_prep_dma_memcpy()
1900 pl08x_free_txd(pl08x, txd); in pl08x_prep_dma_memcpy()
1903 list_add_tail(&dsg->node, &txd->dsg_list); in pl08x_prep_dma_memcpy()
1910 txd->ccfg = 0; in pl08x_prep_dma_memcpy()
1911 txd->cctl = pl08x_ftdmac020_memcpy_cctl(pl08x); in pl08x_prep_dma_memcpy()
1913 txd->ccfg = PL080_CONFIG_ERR_IRQ_MASK | in pl08x_prep_dma_memcpy()
1916 txd->cctl = pl08x_memcpy_cctl(pl08x); in pl08x_prep_dma_memcpy()
1919 ret = pl08x_fill_llis_for_desc(plchan->host, txd); in pl08x_prep_dma_memcpy()
1921 pl08x_free_txd(pl08x, txd); in pl08x_prep_dma_memcpy()
1925 return vchan_tx_prep(&plchan->vc, &txd->vd, flags); in pl08x_prep_dma_memcpy()
1935 struct pl08x_txd *txd; in pl08x_init_txd() local
1941 txd = pl08x_get_txd(plchan); in pl08x_init_txd()
1942 if (!txd) { in pl08x_init_txd()
1967 pl08x_free_txd(pl08x, txd); in pl08x_init_txd()
1975 pl08x_free_txd(pl08x, txd); in pl08x_init_txd()
1981 txd->cctl = cctl | pl08x_select_bus(false, src_buses, dst_buses); in pl08x_init_txd()
1990 txd->ccfg = PL080_CONFIG_ERR_IRQ_MASK | in pl08x_init_txd()
1996 pl08x_free_txd(pl08x, txd); in pl08x_init_txd()
2008 txd->ccfg |= plchan->signal << PL080_CONFIG_DST_SEL_SHIFT; in pl08x_init_txd()
2010 txd->ccfg |= plchan->signal << PL080_CONFIG_SRC_SEL_SHIFT; in pl08x_init_txd()
2012 return txd; in pl08x_init_txd()
2015 static int pl08x_tx_add_sg(struct pl08x_txd *txd, in pl08x_tx_add_sg() argument
2027 list_add_tail(&dsg->node, &txd->dsg_list); in pl08x_tx_add_sg()
2048 struct pl08x_txd *txd; in pl08x_prep_slave_sg() local
2056 txd = pl08x_init_txd(chan, direction, &slave_addr); in pl08x_prep_slave_sg()
2057 if (!txd) in pl08x_prep_slave_sg()
2061 ret = pl08x_tx_add_sg(txd, direction, slave_addr, in pl08x_prep_slave_sg()
2066 pl08x_free_txd(pl08x, txd); in pl08x_prep_slave_sg()
2073 ret = pl08x_fill_llis_for_desc(plchan->host, txd); in pl08x_prep_slave_sg()
2076 pl08x_free_txd(pl08x, txd); in pl08x_prep_slave_sg()
2080 return vchan_tx_prep(&plchan->vc, &txd->vd, flags); in pl08x_prep_slave_sg()
2090 struct pl08x_txd *txd; in pl08x_prep_dma_cyclic() local
2100 txd = pl08x_init_txd(chan, direction, &slave_addr); in pl08x_prep_dma_cyclic()
2101 if (!txd) in pl08x_prep_dma_cyclic()
2104 txd->cyclic = true; in pl08x_prep_dma_cyclic()
2105 txd->cctl |= PL080_CONTROL_TC_IRQ_EN; in pl08x_prep_dma_cyclic()
2107 ret = pl08x_tx_add_sg(txd, direction, slave_addr, in pl08x_prep_dma_cyclic()
2111 pl08x_free_txd(pl08x, txd); in pl08x_prep_dma_cyclic()
2116 ret = pl08x_fill_llis_for_desc(plchan->host, txd); in pl08x_prep_dma_cyclic()
2119 pl08x_free_txd(pl08x, txd); in pl08x_prep_dma_cyclic()
2123 return vchan_tx_prep(&plchan->vc, &txd->vd, flags); in pl08x_prep_dma_cyclic()