Lines Matching refs:sst

45 	struct sst_dsp *sst;  member
61 struct sst_dsp *sst = (struct sst_dsp *)arg; in sst_dma_transfer_complete() local
63 dev_dbg(sst->dev, "DMA: callback\n"); in sst_dma_transfer_complete()
66 static int sst_dsp_dma_copy(struct sst_dsp *sst, dma_addr_t dest_addr, in sst_dsp_dma_copy() argument
70 struct sst_dma *dma = sst->dma; in sst_dsp_dma_copy()
73 dev_err(sst->dev, "error: no DMA channel\n"); in sst_dsp_dma_copy()
77 dev_dbg(sst->dev, "DMA: src: 0x%lx dest 0x%lx size %zu\n", in sst_dsp_dma_copy()
83 dev_err(sst->dev, "error: dma prep memcpy failed\n"); in sst_dsp_dma_copy()
88 desc->callback_param = sst; in sst_dsp_dma_copy()
97 int sst_dsp_dma_copyto(struct sst_dsp *sst, dma_addr_t dest_addr, in sst_dsp_dma_copyto() argument
100 return sst_dsp_dma_copy(sst, dest_addr | SST_HSW_MASK_DMA_ADDR_DSP, in sst_dsp_dma_copyto()
106 int sst_dsp_dma_copyfrom(struct sst_dsp *sst, dma_addr_t dest_addr, in sst_dsp_dma_copyfrom() argument
109 return sst_dsp_dma_copy(sst, dest_addr, in sst_dsp_dma_copyfrom()
264 int sst_dma_new(struct sst_dsp *sst) in sst_dma_new() argument
266 struct sst_pdata *sst_pdata = sst->pdata; in sst_dma_new()
272 if (sst->pdata->resindex_dma_base == -1) in sst_dma_new()
278 switch (sst->pdata->dma_engine) { in sst_dma_new()
283 dev_err(sst->dev, "error: invalid DMA engine %d\n", in sst_dma_new()
284 sst->pdata->dma_engine); in sst_dma_new()
288 dma = devm_kzalloc(sst->dev, sizeof(struct sst_dma), GFP_KERNEL); in sst_dma_new()
292 dma->sst = sst; in sst_dma_new()
296 mem.start = sst->addr.lpe_base + sst_pdata->dma_base; in sst_dma_new()
297 mem.end = sst->addr.lpe_base + sst_pdata->dma_base + sst_pdata->dma_size - 1; in sst_dma_new()
301 dma->chip = dw_probe(sst->dma_dev, &mem, sst_pdata->irq); in sst_dma_new()
303 dev_err(sst->dev, "error: DMA device register failed\n"); in sst_dma_new()
308 sst->dma = dma; in sst_dma_new()
309 sst->fw_use_dma = true; in sst_dma_new()
313 devm_kfree(sst->dev, dma); in sst_dma_new()