Lines Matching refs:sst

44 	struct sst_dsp *sst;  member
60 struct sst_dsp *sst = (struct sst_dsp *)arg; in sst_dma_transfer_complete() local
62 dev_dbg(sst->dev, "DMA: callback\n"); in sst_dma_transfer_complete()
65 static int sst_dsp_dma_copy(struct sst_dsp *sst, dma_addr_t dest_addr, in sst_dsp_dma_copy() argument
69 struct sst_dma *dma = sst->dma; in sst_dsp_dma_copy()
72 dev_err(sst->dev, "error: no DMA channel\n"); in sst_dsp_dma_copy()
76 dev_dbg(sst->dev, "DMA: src: 0x%lx dest 0x%lx size %zu\n", in sst_dsp_dma_copy()
82 dev_err(sst->dev, "error: dma prep memcpy failed\n"); in sst_dsp_dma_copy()
87 desc->callback_param = sst; in sst_dsp_dma_copy()
96 int sst_dsp_dma_copyto(struct sst_dsp *sst, dma_addr_t dest_addr, in sst_dsp_dma_copyto() argument
99 return sst_dsp_dma_copy(sst, dest_addr | SST_HSW_MASK_DMA_ADDR_DSP, in sst_dsp_dma_copyto()
105 int sst_dsp_dma_copyfrom(struct sst_dsp *sst, dma_addr_t dest_addr, in sst_dsp_dma_copyfrom() argument
108 return sst_dsp_dma_copy(sst, dest_addr, in sst_dsp_dma_copyfrom()
258 int sst_dma_new(struct sst_dsp *sst) in sst_dma_new() argument
260 struct sst_pdata *sst_pdata = sst->pdata; in sst_dma_new()
266 if (sst->pdata->resindex_dma_base == -1) in sst_dma_new()
272 switch (sst->pdata->dma_engine) { in sst_dma_new()
277 dev_err(sst->dev, "error: invalid DMA engine %d\n", in sst_dma_new()
278 sst->pdata->dma_engine); in sst_dma_new()
282 dma = devm_kzalloc(sst->dev, sizeof(struct sst_dma), GFP_KERNEL); in sst_dma_new()
286 dma->sst = sst; in sst_dma_new()
290 mem.start = sst->addr.lpe_base + sst_pdata->dma_base; in sst_dma_new()
291 mem.end = sst->addr.lpe_base + sst_pdata->dma_base + sst_pdata->dma_size - 1; in sst_dma_new()
295 dma->chip = dw_probe(sst->dma_dev, &mem, sst_pdata->irq); in sst_dma_new()
297 dev_err(sst->dev, "error: DMA device register failed\n"); in sst_dma_new()
302 sst->dma = dma; in sst_dma_new()
303 sst->fw_use_dma = true; in sst_dma_new()
307 devm_kfree(sst->dev, dma); in sst_dma_new()