Lines Matching refs:dma

69 	struct sst_dma *dma = sst->dma;  in sst_dsp_dma_copy()  local
71 if (dma->ch == NULL) { in sst_dsp_dma_copy()
79 desc = dma->ch->device->device_prep_dma_memcpy(dma->ch, dest_addr, in sst_dsp_dma_copy()
213 struct sst_dma *dma = dsp->dma; in sst_dsp_dma_get_channel() local
222 dma->ch = dma_request_channel(mask, dma_chan_filter, dsp); in sst_dsp_dma_get_channel()
223 if (dma->ch == NULL) { in sst_dsp_dma_get_channel()
234 ret = dmaengine_slave_config(dma->ch, &slave); in sst_dsp_dma_get_channel()
238 dma_release_channel(dma->ch); in sst_dsp_dma_get_channel()
239 dma->ch = NULL; in sst_dsp_dma_get_channel()
248 struct sst_dma *dma = dsp->dma; in sst_dsp_dma_put_channel() local
250 if (!dma->ch) in sst_dsp_dma_put_channel()
253 dma_release_channel(dma->ch); in sst_dsp_dma_put_channel()
254 dma->ch = NULL; in sst_dsp_dma_put_channel()
261 struct sst_dma *dma; in sst_dma_new() local
282 dma = devm_kzalloc(sst->dev, sizeof(struct sst_dma), GFP_KERNEL); in sst_dma_new()
283 if (!dma) in sst_dma_new()
286 dma->sst = sst; in sst_dma_new()
295 dma->chip = dw_probe(sst->dma_dev, &mem, sst_pdata->irq); in sst_dma_new()
296 if (IS_ERR(dma->chip)) { in sst_dma_new()
298 ret = PTR_ERR(dma->chip); in sst_dma_new()
302 sst->dma = dma; in sst_dma_new()
307 devm_kfree(sst->dev, dma); in sst_dma_new()
312 void sst_dma_free(struct sst_dma *dma) in sst_dma_free() argument
315 if (dma == NULL) in sst_dma_free()
318 if (dma->ch) in sst_dma_free()
319 dma_release_channel(dma->ch); in sst_dma_free()
321 if (dma->chip) in sst_dma_free()
322 dw_remove(dma->chip); in sst_dma_free()