Lines Matching full:vc
81 struct virt_dma_chan vc; member
130 return container_of(chan, struct k3_dma_chan, vc.chan); in to_k3_chan()
229 spin_lock(&c->vc.lock); in k3_dma_int_handler()
235 spin_unlock(&c->vc.lock); in k3_dma_int_handler()
238 spin_lock(&c->vc.lock); in k3_dma_int_handler()
241 spin_unlock(&c->vc.lock); in k3_dma_int_handler()
265 struct k3_dma_dev *d = to_k3_dma(c->vc.chan.device); in k3_dma_start_txd()
266 struct virt_dma_desc *vd = vchan_next_desc(&c->vc); in k3_dma_start_txd()
282 * fetch and remove request from vc->desc_issued in k3_dma_start_txd()
283 * so vc->desc_issued only contains desc pending in k3_dma_start_txd()
305 /* check new dma request of running channel in vc->desc_issued */ in k3_dma_tasklet()
306 list_for_each_entry_safe(c, cn, &d->slave.channels, vc.chan.device_node) { in k3_dma_tasklet()
307 spin_lock_irq(&c->vc.lock); in k3_dma_tasklet()
318 spin_unlock_irq(&c->vc.lock); in k3_dma_tasklet()
338 dev_dbg(d->slave.dev, "pchan %u: alloc vchan %p\n", pch, &c->vc); in k3_dma_tasklet()
351 spin_lock_irq(&c->vc.lock); in k3_dma_tasklet()
353 spin_unlock_irq(&c->vc.lock); in k3_dma_tasklet()
369 vchan_free_chan_resources(&c->vc); in k3_dma_free_chan_resources()
384 ret = dma_cookie_status(&c->vc.chan, cookie, state); in k3_dma_tx_status()
388 spin_lock_irqsave(&c->vc.lock, flags); in k3_dma_tx_status()
396 vd = vchan_find_desc(&c->vc, cookie); in k3_dma_tx_status()
416 spin_unlock_irqrestore(&c->vc.lock, flags); in k3_dma_tx_status()
427 spin_lock_irqsave(&c->vc.lock, flags); in k3_dma_issue_pending()
428 /* add request to vc->desc_issued */ in k3_dma_issue_pending()
429 if (vchan_issue_pending(&c->vc)) { in k3_dma_issue_pending()
437 dev_dbg(d->slave.dev, "vchan %p: issued\n", &c->vc); in k3_dma_issue_pending()
442 dev_dbg(d->slave.dev, "vchan %p: nothing to issue\n", &c->vc); in k3_dma_issue_pending()
443 spin_unlock_irqrestore(&c->vc.lock, flags); in k3_dma_issue_pending()
470 &c->vc, num, lli_limit); in k3_dma_alloc_desc_resource()
480 dev_dbg(chan->device->dev, "vch %p: dma alloc fail\n", &c->vc); in k3_dma_alloc_desc_resource()
527 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_memcpy()
578 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_slave_sg()
646 return vchan_tx_prep(&c->vc, &ds->vd, flags); in k3_dma_prep_dma_cyclic()
699 c->ccfg |= c->vc.chan.chan_id << 4; in k3_dma_config_write()
722 dev_dbg(d->slave.dev, "vchan %p: terminate all\n", &c->vc); in k3_dma_terminate_all()
730 spin_lock_irqsave(&c->vc.lock, flags); in k3_dma_terminate_all()
731 vchan_get_all_descriptors(&c->vc, &head); in k3_dma_terminate_all()
743 spin_unlock_irqrestore(&c->vc.lock, flags); in k3_dma_terminate_all()
744 vchan_dma_desc_free_list(&c->vc, &head); in k3_dma_terminate_all()
753 vchan_synchronize(&c->vc); in k3_dma_synchronize()
762 dev_dbg(d->slave.dev, "vchan %p: pause\n", &c->vc); in k3_dma_transfer_pause()
784 dev_dbg(d->slave.dev, "vchan %p: resume\n", &c->vc); in k3_dma_transfer_resume()
785 spin_lock_irqsave(&c->vc.lock, flags); in k3_dma_transfer_resume()
790 } else if (!list_empty(&c->vc.desc_issued)) { in k3_dma_transfer_resume()
796 spin_unlock_irqrestore(&c->vc.lock, flags); in k3_dma_transfer_resume()
829 return dma_get_slave_channel(&(d->chans[request].vc.chan)); in k3_of_dma_simple_xlate()
930 c->vc.desc_free = k3_dma_free_desc; in k3_dma_probe()
931 vchan_init(&c->vc, &d->slave); in k3_dma_probe()
977 list_for_each_entry_safe(c, cn, &d->slave.channels, vc.chan.device_node) { in k3_dma_remove()
978 list_del(&c->vc.chan.device_node); in k3_dma_remove()
979 tasklet_kill(&c->vc.task); in k3_dma_remove()