Lines Matching refs:spcm
29 struct snd_sof_pcm *spcm; in create_page_table() local
33 spcm = snd_sof_find_spcm_dai(sdev, rtd); in create_page_table()
34 if (!spcm) in create_page_table()
38 spcm->stream[stream].page_table.area, size); in create_page_table()
41 static int sof_pcm_dsp_params(struct snd_sof_pcm *spcm, struct snd_pcm_substream *substream, in sof_pcm_dsp_params() argument
44 struct snd_sof_dev *sdev = spcm->sdev; in sof_pcm_dsp_params()
50 spcm->pcm.pcm_id); in sof_pcm_dsp_params()
76 struct snd_sof_pcm *spcm; in snd_sof_pcm_period_elapsed() local
78 spcm = snd_sof_find_spcm_dai(sdev, rtd); in snd_sof_pcm_period_elapsed()
79 if (!spcm) { in snd_sof_pcm_period_elapsed()
93 schedule_work(&spcm->stream[substream->stream].period_elapsed_work); in snd_sof_pcm_period_elapsed()
106 struct snd_sof_pcm *spcm; in sof_pcm_hw_params() local
115 spcm = snd_sof_find_spcm_dai(sdev, rtd); in sof_pcm_hw_params()
116 if (!spcm) in sof_pcm_hw_params()
120 spcm->pcm.pcm_id, substream->stream); in sof_pcm_hw_params()
128 params_buffer_bytes(params), spcm->pcm.pcm_id); in sof_pcm_hw_params()
150 pcm.comp_id = spcm->stream[substream->stream].comp_id; in sof_pcm_hw_params()
153 spcm->stream[substream->stream].page_table.addr; in sof_pcm_hw_params()
207 ret = sof_pcm_dsp_params(spcm, substream, &ipc_params_reply); in sof_pcm_hw_params()
211 spcm->prepared[substream->stream] = true; in sof_pcm_hw_params()
214 memcpy(&spcm->params[substream->stream], params, sizeof(*params)); in sof_pcm_hw_params()
221 struct snd_sof_pcm *spcm) in sof_pcm_dsp_pcm_free() argument
229 stream.comp_id = spcm->stream[substream->stream].comp_id; in sof_pcm_dsp_pcm_free()
235 spcm->prepared[substream->stream] = false; in sof_pcm_dsp_pcm_free()
246 struct snd_sof_pcm *spcm; in sof_pcm_hw_free() local
253 spcm = snd_sof_find_spcm_dai(sdev, rtd); in sof_pcm_hw_free()
254 if (!spcm) in sof_pcm_hw_free()
257 dev_dbg(sdev->dev, "pcm: free stream %d dir %d\n", spcm->pcm.pcm_id, in sof_pcm_hw_free()
260 if (spcm->prepared[substream->stream]) { in sof_pcm_hw_free()
261 ret = sof_pcm_dsp_pcm_free(substream, sdev, spcm); in sof_pcm_hw_free()
268 cancel_work_sync(&spcm->stream[substream->stream].period_elapsed_work); in sof_pcm_hw_free()
285 struct snd_sof_pcm *spcm; in sof_pcm_prepare() local
292 spcm = snd_sof_find_spcm_dai(sdev, rtd); in sof_pcm_prepare()
293 if (!spcm) in sof_pcm_prepare()
296 if (spcm->prepared[substream->stream]) in sof_pcm_prepare()
299 dev_dbg(sdev->dev, "pcm: prepare stream %d dir %d\n", spcm->pcm.pcm_id, in sof_pcm_prepare()
303 ret = sof_pcm_hw_params(substream, &spcm->params[substream->stream]); in sof_pcm_prepare()
322 struct snd_sof_pcm *spcm; in sof_pcm_trigger() local
333 spcm = snd_sof_find_spcm_dai(sdev, rtd); in sof_pcm_trigger()
334 if (!spcm) in sof_pcm_trigger()
338 spcm->pcm.pcm_id, substream->stream, cmd); in sof_pcm_trigger()
342 stream.comp_id = spcm->stream[substream->stream].comp_id; in sof_pcm_trigger()
393 ret = sof_pcm_dsp_pcm_free(substream, sdev, spcm); in sof_pcm_trigger()
404 struct snd_sof_pcm *spcm; in sof_pcm_pointer() local
415 spcm = snd_sof_find_spcm_dai(sdev, rtd); in sof_pcm_pointer()
416 if (!spcm) in sof_pcm_pointer()
421 spcm->stream[substream->stream].posn.host_posn); in sof_pcm_pointer()
423 spcm->stream[substream->stream].posn.dai_posn); in sof_pcm_pointer()
426 spcm->pcm.pcm_id, substream->stream, host, dai); in sof_pcm_pointer()
438 struct snd_sof_pcm *spcm; in sof_pcm_open() local
446 spcm = snd_sof_find_spcm_dai(sdev, rtd); in sof_pcm_open()
447 if (!spcm) in sof_pcm_open()
450 dev_dbg(sdev->dev, "pcm: open stream %d dir %d\n", spcm->pcm.pcm_id, in sof_pcm_open()
453 INIT_WORK(&spcm->stream[substream->stream].period_elapsed_work, in sof_pcm_open()
456 caps = &spcm->pcm.caps[substream->stream]; in sof_pcm_open()
496 spcm->stream[substream->stream].posn.host_posn = 0; in sof_pcm_open()
497 spcm->stream[substream->stream].posn.dai_posn = 0; in sof_pcm_open()
498 spcm->stream[substream->stream].substream = substream; in sof_pcm_open()
499 spcm->prepared[substream->stream] = false; in sof_pcm_open()
514 struct snd_sof_pcm *spcm; in sof_pcm_close() local
521 spcm = snd_sof_find_spcm_dai(sdev, rtd); in sof_pcm_close()
522 if (!spcm) in sof_pcm_close()
525 dev_dbg(sdev->dev, "pcm: close stream %d dir %d\n", spcm->pcm.pcm_id, in sof_pcm_close()
563 struct snd_sof_pcm *spcm; in sof_pcm_new() local
569 spcm = snd_sof_find_spcm_dai(sdev, rtd); in sof_pcm_new()
570 if (!spcm) { in sof_pcm_new()
576 dev_dbg(sdev->dev, "creating new PCM %s\n", spcm->pcm.pcm_name); in sof_pcm_new()
579 if (!spcm->pcm.playback) in sof_pcm_new()
582 caps = &spcm->pcm.caps[stream]; in sof_pcm_new()
596 if (!spcm->pcm.capture) in sof_pcm_new()
599 caps = &spcm->pcm.caps[stream]; in sof_pcm_new()