Lines Matching refs:dma
100 unsigned int comedi_isadma_poll(struct comedi_isadma *dma) in comedi_isadma_poll() argument
102 struct comedi_isadma_desc *desc = &dma->desc[dma->cur_dma]; in comedi_isadma_poll()
158 struct comedi_isadma *dma = NULL; in comedi_isadma_alloc() local
166 dma = kzalloc(sizeof(*dma), GFP_KERNEL); in comedi_isadma_alloc()
167 if (!dma) in comedi_isadma_alloc()
173 dma->desc = desc; in comedi_isadma_alloc()
174 dma->n_desc = n_desc; in comedi_isadma_alloc()
176 dma->dev = dev->hw_dev; in comedi_isadma_alloc()
186 dma->dev = dev->class_dev; in comedi_isadma_alloc()
197 dma->chan = dma_chans[0]; in comedi_isadma_alloc()
202 dma->chan2 = dma_chans[1]; in comedi_isadma_alloc()
205 desc = &dma->desc[i]; in comedi_isadma_alloc()
208 desc->virt_addr = dma_alloc_coherent(dma->dev, desc->maxsize, in comedi_isadma_alloc()
216 return dma; in comedi_isadma_alloc()
219 comedi_isadma_free(dma); in comedi_isadma_alloc()
228 void comedi_isadma_free(struct comedi_isadma *dma) in comedi_isadma_free() argument
233 if (!dma) in comedi_isadma_free()
236 if (dma->desc) { in comedi_isadma_free()
237 for (i = 0; i < dma->n_desc; i++) { in comedi_isadma_free()
238 desc = &dma->desc[i]; in comedi_isadma_free()
240 dma_free_coherent(dma->dev, desc->maxsize, in comedi_isadma_free()
244 kfree(dma->desc); in comedi_isadma_free()
246 if (dma->chan2 && dma->chan2 != dma->chan) in comedi_isadma_free()
247 free_dma(dma->chan2); in comedi_isadma_free()
248 if (dma->chan) in comedi_isadma_free()
249 free_dma(dma->chan); in comedi_isadma_free()
250 kfree(dma); in comedi_isadma_free()