Lines Matching refs:dma
75 struct sst_dma *dma = sst->dma; in sst_dsp_dma_copy() local
77 if (dma->ch == NULL) { in sst_dsp_dma_copy()
85 desc = dma->ch->device->device_prep_dma_memcpy(dma->ch, dest_addr, in sst_dsp_dma_copy()
219 struct sst_dma *dma = dsp->dma; in sst_dsp_dma_get_channel() local
228 dma->ch = dma_request_channel(mask, dma_chan_filter, dsp); in sst_dsp_dma_get_channel()
229 if (dma->ch == NULL) { in sst_dsp_dma_get_channel()
240 ret = dmaengine_slave_config(dma->ch, &slave); in sst_dsp_dma_get_channel()
244 dma_release_channel(dma->ch); in sst_dsp_dma_get_channel()
245 dma->ch = NULL; in sst_dsp_dma_get_channel()
254 struct sst_dma *dma = dsp->dma; in sst_dsp_dma_put_channel() local
256 if (!dma->ch) in sst_dsp_dma_put_channel()
259 dma_release_channel(dma->ch); in sst_dsp_dma_put_channel()
260 dma->ch = NULL; in sst_dsp_dma_put_channel()
267 struct sst_dma *dma; in sst_dma_new() local
286 dma = devm_kzalloc(sst->dev, sizeof(struct sst_dma), GFP_KERNEL); in sst_dma_new()
287 if (!dma) in sst_dma_new()
290 dma->sst = sst; in sst_dma_new()
299 dma->chip = dw_probe(sst->dma_dev, &mem, sst_pdata->irq); in sst_dma_new()
300 if (IS_ERR(dma->chip)) { in sst_dma_new()
302 ret = PTR_ERR(dma->chip); in sst_dma_new()
306 sst->dma = dma; in sst_dma_new()
311 devm_kfree(sst->dev, dma); in sst_dma_new()
315 static void sst_dma_free(struct sst_dma *dma) in sst_dma_free() argument
318 if (dma == NULL) in sst_dma_free()
321 if (dma->ch) in sst_dma_free()
322 dma_release_channel(dma->ch); in sst_dma_free()
324 if (dma->chip) in sst_dma_free()
325 dw_remove(dma->chip); in sst_dma_free()
1268 sst_dma_free(sst->dma); in sst_dsp_free()