Lines Matching refs:ds

268 		struct k3_dma_desc_sw *ds =  in k3_dma_start_txd()  local
274 list_del(&ds->vd.node); in k3_dma_start_txd()
276 c->phy->ds_run = ds; in k3_dma_start_txd()
279 k3_dma_set_desc(c->phy, &ds->desc_hw[0]); in k3_dma_start_txd()
385 struct k3_dma_desc_sw *ds = p->ds_run; in k3_dma_tx_status() local
390 index = ((clli - ds->desc_hw_lli) / in k3_dma_tx_status()
392 for (; index < ds->desc_num; index++) { in k3_dma_tx_status()
393 bytes += ds->desc_hw[index].count; in k3_dma_tx_status()
395 if (!ds->desc_hw[index].lli) in k3_dma_tx_status()
429 static void k3_dma_fill_desc(struct k3_dma_desc_sw *ds, dma_addr_t dst, in k3_dma_fill_desc() argument
432 if (num != ds->desc_num - 1) in k3_dma_fill_desc()
433 ds->desc_hw[num].lli = ds->desc_hw_lli + (num + 1) * in k3_dma_fill_desc()
436 ds->desc_hw[num].lli |= CX_LLI_CHAIN_EN; in k3_dma_fill_desc()
437 ds->desc_hw[num].count = len; in k3_dma_fill_desc()
438 ds->desc_hw[num].saddr = src; in k3_dma_fill_desc()
439 ds->desc_hw[num].daddr = dst; in k3_dma_fill_desc()
440 ds->desc_hw[num].config = ccfg; in k3_dma_fill_desc()
447 struct k3_dma_desc_sw *ds; in k3_dma_alloc_desc_resource() local
457 ds = kzalloc(sizeof(*ds), GFP_NOWAIT); in k3_dma_alloc_desc_resource()
458 if (!ds) in k3_dma_alloc_desc_resource()
461 ds->desc_hw = dma_pool_zalloc(d->pool, GFP_NOWAIT, &ds->desc_hw_lli); in k3_dma_alloc_desc_resource()
462 if (!ds->desc_hw) { in k3_dma_alloc_desc_resource()
464 kfree(ds); in k3_dma_alloc_desc_resource()
467 ds->desc_num = num; in k3_dma_alloc_desc_resource()
468 return ds; in k3_dma_alloc_desc_resource()
476 struct k3_dma_desc_sw *ds; in k3_dma_prep_memcpy() local
485 ds = k3_dma_alloc_desc_resource(num, chan); in k3_dma_prep_memcpy()
486 if (!ds) in k3_dma_prep_memcpy()
490 ds->size = len; in k3_dma_prep_memcpy()
502 k3_dma_fill_desc(ds, dst, src, copy, num++, c->ccfg); in k3_dma_prep_memcpy()
515 ds->desc_hw[num-1].lli = 0; /* end of link */ in k3_dma_prep_memcpy()
516 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_memcpy()
524 struct k3_dma_desc_sw *ds; in k3_dma_prep_slave_sg() local
541 ds = k3_dma_alloc_desc_resource(num, chan); in k3_dma_prep_slave_sg()
542 if (!ds) in k3_dma_prep_slave_sg()
562 k3_dma_fill_desc(ds, dst, src, len, num++, c->ccfg); in k3_dma_prep_slave_sg()
569 ds->desc_hw[num-1].lli = 0; /* end of link */ in k3_dma_prep_slave_sg()
570 ds->size = total; in k3_dma_prep_slave_sg()
571 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_slave_sg()
581 struct k3_dma_desc_sw *ds; in k3_dma_prep_dma_cyclic() local
596 ds = k3_dma_alloc_desc_resource(num, chan); in k3_dma_prep_dma_cyclic()
597 if (!ds) in k3_dma_prep_dma_cyclic()
627 k3_dma_fill_desc(ds, dst, src, len, num++, c->ccfg | en_tc2); in k3_dma_prep_dma_cyclic()
634 ds->desc_hw[num - 1].lli |= ds->desc_hw_lli; in k3_dma_prep_dma_cyclic()
636 ds->size = total; in k3_dma_prep_dma_cyclic()
638 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_dma_cyclic()
690 struct k3_dma_desc_sw *ds = in k3_dma_free_desc() local
694 dma_pool_free(d->pool, ds->desc_hw, ds->desc_hw_lli); in k3_dma_free_desc()
695 kfree(ds); in k3_dma_free_desc()