Lines Matching full:ds

279 		struct k3_dma_desc_sw *ds =  in k3_dma_start_txd()  local
285 list_del(&ds->vd.node); in k3_dma_start_txd()
287 c->phy->ds_run = ds; in k3_dma_start_txd()
290 k3_dma_set_desc(c->phy, &ds->desc_hw[0]); in k3_dma_start_txd()
402 struct k3_dma_desc_sw *ds = p->ds_run; in k3_dma_tx_status() local
407 index = ((clli - ds->desc_hw_lli) / in k3_dma_tx_status()
409 for (; index < ds->desc_num; index++) { in k3_dma_tx_status()
410 bytes += ds->desc_hw[index].count; in k3_dma_tx_status()
412 if (!ds->desc_hw[index].lli) in k3_dma_tx_status()
446 static void k3_dma_fill_desc(struct k3_dma_desc_sw *ds, dma_addr_t dst, in k3_dma_fill_desc() argument
449 if (num != ds->desc_num - 1) in k3_dma_fill_desc()
450 ds->desc_hw[num].lli = ds->desc_hw_lli + (num + 1) * in k3_dma_fill_desc()
453 ds->desc_hw[num].lli |= CX_LLI_CHAIN_EN; in k3_dma_fill_desc()
454 ds->desc_hw[num].count = len; in k3_dma_fill_desc()
455 ds->desc_hw[num].saddr = src; in k3_dma_fill_desc()
456 ds->desc_hw[num].daddr = dst; in k3_dma_fill_desc()
457 ds->desc_hw[num].config = ccfg; in k3_dma_fill_desc()
464 struct k3_dma_desc_sw *ds; in k3_dma_alloc_desc_resource() local
474 ds = kzalloc(sizeof(*ds), GFP_NOWAIT); in k3_dma_alloc_desc_resource()
475 if (!ds) in k3_dma_alloc_desc_resource()
478 ds->desc_hw = dma_pool_zalloc(d->pool, GFP_NOWAIT, &ds->desc_hw_lli); in k3_dma_alloc_desc_resource()
479 if (!ds->desc_hw) { in k3_dma_alloc_desc_resource()
481 kfree(ds); in k3_dma_alloc_desc_resource()
484 ds->desc_num = num; in k3_dma_alloc_desc_resource()
485 return ds; in k3_dma_alloc_desc_resource()
493 struct k3_dma_desc_sw *ds; in k3_dma_prep_memcpy() local
502 ds = k3_dma_alloc_desc_resource(num, chan); in k3_dma_prep_memcpy()
503 if (!ds) in k3_dma_prep_memcpy()
507 ds->size = len; in k3_dma_prep_memcpy()
519 k3_dma_fill_desc(ds, dst, src, copy, num++, c->ccfg); in k3_dma_prep_memcpy()
526 ds->desc_hw[num-1].lli = 0; /* end of link */ in k3_dma_prep_memcpy()
527 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_memcpy()
535 struct k3_dma_desc_sw *ds; in k3_dma_prep_slave_sg() local
552 ds = k3_dma_alloc_desc_resource(num, chan); in k3_dma_prep_slave_sg()
553 if (!ds) in k3_dma_prep_slave_sg()
574 k3_dma_fill_desc(ds, dst, src, len, num++, c->ccfg); in k3_dma_prep_slave_sg()
581 ds->desc_hw[num-1].lli = 0; /* end of link */ in k3_dma_prep_slave_sg()
582 ds->size = total; in k3_dma_prep_slave_sg()
583 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_slave_sg()
593 struct k3_dma_desc_sw *ds; in k3_dma_prep_dma_cyclic() local
608 ds = k3_dma_alloc_desc_resource(num, chan); in k3_dma_prep_dma_cyclic()
609 if (!ds) in k3_dma_prep_dma_cyclic()
640 k3_dma_fill_desc(ds, dst, src, len, num++, c->ccfg | en_tc2); in k3_dma_prep_dma_cyclic()
647 ds->desc_hw[num - 1].lli |= ds->desc_hw_lli; in k3_dma_prep_dma_cyclic()
649 ds->size = total; in k3_dma_prep_dma_cyclic()
651 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_dma_cyclic()
711 struct k3_dma_desc_sw *ds = in k3_dma_free_desc() local
715 dma_pool_free(d->pool, ds->desc_hw, ds->desc_hw_lli); in k3_dma_free_desc()
716 kfree(ds); in k3_dma_free_desc()