Lines Matching refs:desc

42 	struct pt_dma_desc *desc = to_pt_desc(vd);
43 struct pt_device *pt = desc->pt;
45 kmem_cache_free(pt->dma_desc_cache, desc);
48 static int pt_dma_start_desc(struct pt_dma_desc *desc)
55 desc->issued_to_hw = 1;
57 pt_cmd = &desc->pt_cmd;
79 struct pt_dma_desc *desc)
87 if (desc) {
88 if (!desc->issued_to_hw) {
90 if (desc->status != DMA_ERROR)
91 return desc;
94 tx_desc = &desc->vd.tx;
95 vd = &desc->vd;
102 if (desc) {
103 if (desc->status != DMA_COMPLETE) {
104 if (desc->status != DMA_ERROR)
105 desc->status = DMA_COMPLETE;
109 list_del(&desc->vd.node);
116 desc = pt_next_dma_desc(chan);
125 } while (desc);
132 struct pt_dma_desc *desc = data;
140 dma_chan = desc->vd.tx.chan;
144 desc->status = DMA_ERROR;
148 desc = pt_handle_active_desc(chan, desc);
151 if (!desc)
154 ret = pt_dma_start_desc(desc);
158 desc->status = DMA_ERROR;
165 struct pt_dma_desc *desc;
167 desc = kmem_cache_zalloc(chan->pt->dma_desc_cache, GFP_NOWAIT);
168 if (!desc)
171 vchan_tx_prep(&chan->vc, &desc->vd, flags);
173 desc->pt = chan->pt;
174 desc->pt->cmd_q.int_en = !!(flags & DMA_PREP_INTERRUPT);
175 desc->issued_to_hw = 0;
176 desc->status = DMA_IN_PROGRESS;
178 return desc;
189 struct pt_dma_desc *desc;
192 desc = pt_alloc_dma_desc(chan, flags);
193 if (!desc)
196 pt_cmd = &desc->pt_cmd;
204 pt_cmd->data = desc;
206 desc->len = len;
208 return desc;
215 struct pt_dma_desc *desc;
217 desc = pt_create_desc(dma_chan, dst, src, len, flags);
218 if (!desc)
221 return &desc->vd.tx;
228 struct pt_dma_desc *desc;
230 desc = pt_alloc_dma_desc(chan, flags);
231 if (!desc)
234 return &desc->vd.tx;
240 struct pt_dma_desc *desc;
246 desc = pt_next_dma_desc(chan);
247 if (desc)
252 desc = pt_next_dma_desc(chan);
257 if (engine_is_idle && desc)
258 pt_cmd_callback(desc, 0);
287 struct pt_dma_desc *desc = NULL;
292 desc = pt_next_dma_desc(chan);
296 if (desc)
297 pt_cmd_callback(desc, 0);
340 "%s-dmaengine-desc-cache",