Lines Matching full:desc

42 	struct pt_dma_desc *desc = to_pt_desc(vd);  in pt_do_cleanup()  local
43 struct pt_device *pt = desc->pt; in pt_do_cleanup()
45 kmem_cache_free(pt->dma_desc_cache, desc); in pt_do_cleanup()
48 static int pt_dma_start_desc(struct pt_dma_desc *desc) in pt_dma_start_desc() argument
55 desc->issued_to_hw = 1; in pt_dma_start_desc()
57 pt_cmd = &desc->pt_cmd; in pt_dma_start_desc()
79 struct pt_dma_desc *desc) in pt_handle_active_desc() argument
87 if (desc) { in pt_handle_active_desc()
88 if (!desc->issued_to_hw) { in pt_handle_active_desc()
90 if (desc->status != DMA_ERROR) in pt_handle_active_desc()
91 return desc; in pt_handle_active_desc()
94 tx_desc = &desc->vd.tx; in pt_handle_active_desc()
95 vd = &desc->vd; in pt_handle_active_desc()
102 if (desc) { in pt_handle_active_desc()
103 if (desc->status != DMA_ERROR) in pt_handle_active_desc()
104 desc->status = DMA_COMPLETE; in pt_handle_active_desc()
108 list_del(&desc->vd.node); in pt_handle_active_desc()
111 desc = pt_next_dma_desc(chan); in pt_handle_active_desc()
120 } while (desc); in pt_handle_active_desc()
127 struct pt_dma_desc *desc = data; in pt_cmd_callback() local
135 dma_chan = desc->vd.tx.chan; in pt_cmd_callback()
139 desc->status = DMA_ERROR; in pt_cmd_callback()
143 desc = pt_handle_active_desc(chan, desc); in pt_cmd_callback()
146 if (!desc) in pt_cmd_callback()
149 ret = pt_dma_start_desc(desc); in pt_cmd_callback()
153 desc->status = DMA_ERROR; in pt_cmd_callback()
160 struct pt_dma_desc *desc; in pt_alloc_dma_desc() local
162 desc = kmem_cache_zalloc(chan->pt->dma_desc_cache, GFP_NOWAIT); in pt_alloc_dma_desc()
163 if (!desc) in pt_alloc_dma_desc()
166 vchan_tx_prep(&chan->vc, &desc->vd, flags); in pt_alloc_dma_desc()
168 desc->pt = chan->pt; in pt_alloc_dma_desc()
169 desc->issued_to_hw = 0; in pt_alloc_dma_desc()
170 desc->status = DMA_IN_PROGRESS; in pt_alloc_dma_desc()
172 return desc; in pt_alloc_dma_desc()
183 struct pt_dma_desc *desc; in pt_create_desc() local
186 desc = pt_alloc_dma_desc(chan, flags); in pt_create_desc()
187 if (!desc) in pt_create_desc()
190 pt_cmd = &desc->pt_cmd; in pt_create_desc()
198 pt_cmd->data = desc; in pt_create_desc()
200 desc->len = len; in pt_create_desc()
202 return desc; in pt_create_desc()
209 struct pt_dma_desc *desc; in pt_prep_dma_memcpy() local
211 desc = pt_create_desc(dma_chan, dst, src, len, flags); in pt_prep_dma_memcpy()
212 if (!desc) in pt_prep_dma_memcpy()
215 return &desc->vd.tx; in pt_prep_dma_memcpy()
222 struct pt_dma_desc *desc; in pt_prep_dma_interrupt() local
224 desc = pt_alloc_dma_desc(chan, flags); in pt_prep_dma_interrupt()
225 if (!desc) in pt_prep_dma_interrupt()
228 return &desc->vd.tx; in pt_prep_dma_interrupt()
234 struct pt_dma_desc *desc; in pt_issue_pending() local
241 desc = pt_next_dma_desc(chan); in pt_issue_pending()
246 if (desc) in pt_issue_pending()
247 pt_cmd_callback(desc, 0); in pt_issue_pending()
265 struct pt_dma_desc *desc = NULL; in pt_resume() local
270 desc = pt_next_dma_desc(chan); in pt_resume()
274 if (desc) in pt_resume()
275 pt_cmd_callback(desc, 0); in pt_resume()
316 "%s-dmaengine-desc-cache", in pt_dmaengine_register()