Lines Matching refs:txd

542 	struct pl08x_txd *txd = to_pl08x_txd(&vd->tx);  in pl08x_start_next_txd()  local
545 list_del(&txd->vd.node); in pl08x_start_next_txd()
547 plchan->at = txd; in pl08x_start_next_txd()
553 pl08x_write_lli(pl08x, phychan, &txd->llis_va[0], txd->ccfg); in pl08x_start_next_txd()
769 struct pl08x_txd *txd; in pl08x_getbytes_chan() local
775 txd = plchan->at; in pl08x_getbytes_chan()
777 if (!ch || !txd) in pl08x_getbytes_chan()
792 llis_va = txd->llis_va; in pl08x_getbytes_chan()
793 llis_bus = txd->llis_bus; in pl08x_getbytes_chan()
1109 struct pl08x_txd *txd; member
1175 u32 *llis_va = bd->txd->llis_va + offset; in pl08x_fill_lli_for_desc()
1176 dma_addr_t llis_bus = bd->txd->llis_bus; in pl08x_fill_lli_for_desc()
1260 struct pl08x_txd *txd) in pl08x_fill_llis_for_desc() argument
1270 txd->llis_va = dma_pool_alloc(pl08x->pool, GFP_NOWAIT, &txd->llis_bus); in pl08x_fill_llis_for_desc()
1271 if (!txd->llis_va) { in pl08x_fill_llis_for_desc()
1276 bd.txd = txd; in pl08x_fill_llis_for_desc()
1278 cctl = txd->cctl; in pl08x_fill_llis_for_desc()
1286 list_for_each_entry(dsg, &txd->dsg_list, node) { in pl08x_fill_llis_for_desc()
1288 cctl = txd->cctl; in pl08x_fill_llis_for_desc()
1339 fc = (txd->ccfg & PL080_CONFIG_FLOW_CONTROL_MASK) >> in pl08x_fill_llis_for_desc()
1473 llis_va = txd->llis_va; in pl08x_fill_llis_for_desc()
1476 if (txd->cyclic) { in pl08x_fill_llis_for_desc()
1478 last_lli[PL080_LLI_LLI] = txd->llis_bus | bd.lli_bus; in pl08x_fill_llis_for_desc()
1495 struct pl08x_txd *txd) in pl08x_free_txd() argument
1499 if (txd->llis_va) in pl08x_free_txd()
1500 dma_pool_free(pl08x->pool, txd->llis_va, txd->llis_bus); in pl08x_free_txd()
1502 list_for_each_entry_safe(dsg, _dsg, &txd->dsg_list, node) { in pl08x_free_txd()
1507 kfree(txd); in pl08x_free_txd()
1512 struct pl08x_txd *txd = to_pl08x_txd(&vd->tx); in pl08x_desc_free() local
1516 if (!txd->done) in pl08x_desc_free()
1519 pl08x_free_txd(plchan->host, txd); in pl08x_desc_free()
1582 struct pl08x_txd *txd = to_pl08x_txd(&vd->tx); in pl08x_dma_tx_status() local
1585 list_for_each_entry(dsg, &txd->dsg_list, node) in pl08x_dma_tx_status()
1756 struct pl08x_txd *txd = kzalloc(sizeof(*txd), GFP_NOWAIT); in pl08x_get_txd() local
1758 if (txd) in pl08x_get_txd()
1759 INIT_LIST_HEAD(&txd->dsg_list); in pl08x_get_txd()
1760 return txd; in pl08x_get_txd()
1897 struct pl08x_txd *txd; in pl08x_prep_dma_memcpy() local
1901 txd = pl08x_get_txd(plchan); in pl08x_prep_dma_memcpy()
1902 if (!txd) { in pl08x_prep_dma_memcpy()
1910 pl08x_free_txd(pl08x, txd); in pl08x_prep_dma_memcpy()
1913 list_add_tail(&dsg->node, &txd->dsg_list); in pl08x_prep_dma_memcpy()
1920 txd->ccfg = 0; in pl08x_prep_dma_memcpy()
1921 txd->cctl = pl08x_ftdmac020_memcpy_cctl(pl08x); in pl08x_prep_dma_memcpy()
1923 txd->ccfg = PL080_CONFIG_ERR_IRQ_MASK | in pl08x_prep_dma_memcpy()
1926 txd->cctl = pl08x_memcpy_cctl(pl08x); in pl08x_prep_dma_memcpy()
1929 ret = pl08x_fill_llis_for_desc(plchan->host, txd); in pl08x_prep_dma_memcpy()
1931 pl08x_free_txd(pl08x, txd); in pl08x_prep_dma_memcpy()
1935 return vchan_tx_prep(&plchan->vc, &txd->vd, flags); in pl08x_prep_dma_memcpy()
1945 struct pl08x_txd *txd; in pl08x_init_txd() local
1951 txd = pl08x_get_txd(plchan); in pl08x_init_txd()
1952 if (!txd) { in pl08x_init_txd()
1977 pl08x_free_txd(pl08x, txd); in pl08x_init_txd()
1985 pl08x_free_txd(pl08x, txd); in pl08x_init_txd()
1991 txd->cctl = cctl | pl08x_select_bus(false, src_buses, dst_buses); in pl08x_init_txd()
2000 txd->ccfg = PL080_CONFIG_ERR_IRQ_MASK | in pl08x_init_txd()
2006 pl08x_free_txd(pl08x, txd); in pl08x_init_txd()
2018 txd->ccfg |= plchan->signal << PL080_CONFIG_DST_SEL_SHIFT; in pl08x_init_txd()
2020 txd->ccfg |= plchan->signal << PL080_CONFIG_SRC_SEL_SHIFT; in pl08x_init_txd()
2022 return txd; in pl08x_init_txd()
2025 static int pl08x_tx_add_sg(struct pl08x_txd *txd, in pl08x_tx_add_sg() argument
2037 list_add_tail(&dsg->node, &txd->dsg_list); in pl08x_tx_add_sg()
2058 struct pl08x_txd *txd; in pl08x_prep_slave_sg() local
2066 txd = pl08x_init_txd(chan, direction, &slave_addr); in pl08x_prep_slave_sg()
2067 if (!txd) in pl08x_prep_slave_sg()
2071 ret = pl08x_tx_add_sg(txd, direction, slave_addr, in pl08x_prep_slave_sg()
2076 pl08x_free_txd(pl08x, txd); in pl08x_prep_slave_sg()
2083 ret = pl08x_fill_llis_for_desc(plchan->host, txd); in pl08x_prep_slave_sg()
2086 pl08x_free_txd(pl08x, txd); in pl08x_prep_slave_sg()
2090 return vchan_tx_prep(&plchan->vc, &txd->vd, flags); in pl08x_prep_slave_sg()
2100 struct pl08x_txd *txd; in pl08x_prep_dma_cyclic() local
2110 txd = pl08x_init_txd(chan, direction, &slave_addr); in pl08x_prep_dma_cyclic()
2111 if (!txd) in pl08x_prep_dma_cyclic()
2114 txd->cyclic = true; in pl08x_prep_dma_cyclic()
2115 txd->cctl |= PL080_CONTROL_TC_IRQ_EN; in pl08x_prep_dma_cyclic()
2117 ret = pl08x_tx_add_sg(txd, direction, slave_addr, in pl08x_prep_dma_cyclic()
2121 pl08x_free_txd(pl08x, txd); in pl08x_prep_dma_cyclic()
2126 ret = pl08x_fill_llis_for_desc(plchan->host, txd); in pl08x_prep_dma_cyclic()
2129 pl08x_free_txd(pl08x, txd); in pl08x_prep_dma_cyclic()
2133 return vchan_tx_prep(&plchan->vc, &txd->vd, flags); in pl08x_prep_dma_cyclic()