Lines Matching refs:fsl_chan
306 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); in fsl_qdma_free_chan_resources() local
307 struct fsl_qdma_queue *fsl_queue = fsl_chan->queue; in fsl_qdma_free_chan_resources()
308 struct fsl_qdma_engine *fsl_qdma = fsl_chan->qdma; in fsl_qdma_free_chan_resources()
313 spin_lock_irqsave(&fsl_chan->vchan.lock, flags); in fsl_qdma_free_chan_resources()
314 vchan_get_all_descriptors(&fsl_chan->vchan, &head); in fsl_qdma_free_chan_resources()
315 spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags); in fsl_qdma_free_chan_resources()
317 vchan_dma_desc_free_list(&fsl_chan->vchan, &head); in fsl_qdma_free_chan_resources()
455 *fsl_qdma_request_enqueue_desc(struct fsl_qdma_chan *fsl_chan) in fsl_qdma_request_enqueue_desc() argument
460 struct fsl_qdma_queue *queue = fsl_chan->queue; in fsl_qdma_request_enqueue_desc()
471 comp_temp->qchan = fsl_chan; in fsl_qdma_request_enqueue_desc()
976 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); in fsl_qdma_prep_memcpy() local
978 fsl_comp = fsl_qdma_request_enqueue_desc(fsl_chan); in fsl_qdma_prep_memcpy()
985 return vchan_tx_prep(&fsl_chan->vchan, &fsl_comp->vdesc, flags); in fsl_qdma_prep_memcpy()
988 static void fsl_qdma_enqueue_desc(struct fsl_qdma_chan *fsl_chan) in fsl_qdma_enqueue_desc() argument
993 struct fsl_qdma_queue *fsl_queue = fsl_chan->queue; in fsl_qdma_enqueue_desc()
996 reg = qdma_readl(fsl_chan->qdma, block + FSL_QDMA_BCQSR(fsl_queue->id)); in fsl_qdma_enqueue_desc()
999 vdesc = vchan_next_desc(&fsl_chan->vchan); in fsl_qdma_enqueue_desc()
1012 reg = qdma_readl(fsl_chan->qdma, block + FSL_QDMA_BCQMR(fsl_queue->id)); in fsl_qdma_enqueue_desc()
1014 qdma_writel(fsl_chan->qdma, reg, block + FSL_QDMA_BCQMR(fsl_queue->id)); in fsl_qdma_enqueue_desc()
1015 fsl_chan->status = DMA_IN_PROGRESS; in fsl_qdma_enqueue_desc()
1035 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); in fsl_qdma_issue_pending() local
1036 struct fsl_qdma_queue *fsl_queue = fsl_chan->queue; in fsl_qdma_issue_pending()
1039 spin_lock(&fsl_chan->vchan.lock); in fsl_qdma_issue_pending()
1040 if (vchan_issue_pending(&fsl_chan->vchan)) in fsl_qdma_issue_pending()
1041 fsl_qdma_enqueue_desc(fsl_chan); in fsl_qdma_issue_pending()
1042 spin_unlock(&fsl_chan->vchan.lock); in fsl_qdma_issue_pending()
1048 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); in fsl_qdma_synchronize() local
1050 vchan_synchronize(&fsl_chan->vchan); in fsl_qdma_synchronize()
1057 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); in fsl_qdma_terminate_all() local
1059 spin_lock_irqsave(&fsl_chan->vchan.lock, flags); in fsl_qdma_terminate_all()
1060 vchan_get_all_descriptors(&fsl_chan->vchan, &head); in fsl_qdma_terminate_all()
1061 spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags); in fsl_qdma_terminate_all()
1062 vchan_dma_desc_free_list(&fsl_chan->vchan, &head); in fsl_qdma_terminate_all()
1069 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); in fsl_qdma_alloc_chan_resources() local
1070 struct fsl_qdma_engine *fsl_qdma = fsl_chan->qdma; in fsl_qdma_alloc_chan_resources()
1071 struct fsl_qdma_queue *fsl_queue = fsl_chan->queue; in fsl_qdma_alloc_chan_resources()
1122 struct fsl_qdma_chan *fsl_chan; in fsl_qdma_probe() local
1151 len = sizeof(*fsl_chan) * chans; in fsl_qdma_probe()
1212 struct fsl_qdma_chan *fsl_chan = &fsl_qdma->chans[i]; in fsl_qdma_probe() local
1214 fsl_chan->qdma = fsl_qdma; in fsl_qdma_probe()
1215 fsl_chan->queue = fsl_qdma->queue + i % (fsl_qdma->n_queues * in fsl_qdma_probe()
1217 fsl_chan->vchan.desc_free = fsl_qdma_free_desc; in fsl_qdma_probe()
1218 vchan_init(&fsl_chan->vchan, &fsl_qdma->dma_dev); in fsl_qdma_probe()