Lines Matching refs:spcm
29 struct snd_sof_pcm *spcm; in create_page_table() local
33 spcm = snd_sof_find_spcm_dai(component, 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_soc_component *scomp = spcm->scomp; in sof_pcm_dsp_params()
52 spcm->pcm.pcm_id); in sof_pcm_dsp_params()
77 struct snd_sof_pcm *spcm; in snd_sof_pcm_period_elapsed() local
79 spcm = snd_sof_find_spcm_dai(component, rtd); in snd_sof_pcm_period_elapsed()
80 if (!spcm) { in snd_sof_pcm_period_elapsed()
94 schedule_work(&spcm->stream[substream->stream].period_elapsed_work); in snd_sof_pcm_period_elapsed()
100 struct snd_sof_pcm *spcm) in sof_pcm_dsp_pcm_free() argument
108 stream.comp_id = spcm->stream[substream->stream].comp_id; in sof_pcm_dsp_pcm_free()
114 spcm->prepared[substream->stream] = false; in sof_pcm_dsp_pcm_free()
126 struct snd_sof_pcm *spcm; in sof_pcm_hw_params() local
135 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_hw_params()
136 if (!spcm) in sof_pcm_hw_params()
143 if (spcm->prepared[substream->stream]) { in sof_pcm_hw_params()
144 ret = sof_pcm_dsp_pcm_free(substream, sdev, spcm); in sof_pcm_hw_params()
150 spcm->pcm.pcm_id, substream->stream); in sof_pcm_hw_params()
168 pcm.comp_id = spcm->stream[substream->stream].comp_id; in sof_pcm_hw_params()
171 spcm->stream[substream->stream].page_table.addr; in sof_pcm_hw_params()
225 ret = sof_pcm_dsp_params(spcm, substream, &ipc_params_reply); in sof_pcm_hw_params()
229 spcm->prepared[substream->stream] = true; in sof_pcm_hw_params()
232 memcpy(&spcm->params[substream->stream], params, sizeof(*params)); in sof_pcm_hw_params()
242 struct snd_sof_pcm *spcm; in sof_pcm_hw_free() local
249 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_hw_free()
250 if (!spcm) in sof_pcm_hw_free()
254 spcm->pcm.pcm_id, substream->stream); in sof_pcm_hw_free()
256 if (spcm->prepared[substream->stream]) { in sof_pcm_hw_free()
257 ret = sof_pcm_dsp_pcm_free(substream, sdev, spcm); in sof_pcm_hw_free()
262 cancel_work_sync(&spcm->stream[substream->stream].period_elapsed_work); in sof_pcm_hw_free()
277 struct snd_sof_pcm *spcm; in sof_pcm_prepare() local
284 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_prepare()
285 if (!spcm) in sof_pcm_prepare()
288 if (spcm->prepared[substream->stream]) in sof_pcm_prepare()
292 spcm->pcm.pcm_id, substream->stream); in sof_pcm_prepare()
296 substream, &spcm->params[substream->stream]); in sof_pcm_prepare()
315 struct snd_sof_pcm *spcm; in sof_pcm_trigger() local
326 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_trigger()
327 if (!spcm) in sof_pcm_trigger()
331 spcm->pcm.pcm_id, substream->stream, cmd); in sof_pcm_trigger()
335 stream.comp_id = spcm->stream[substream->stream].comp_id; in sof_pcm_trigger()
346 if (spcm->stream[substream->stream].suspend_ignored) { in sof_pcm_trigger()
352 spcm->stream[substream->stream].suspend_ignored = false; in sof_pcm_trigger()
366 if (spcm->stream[substream->stream].suspend_ignored) { in sof_pcm_trigger()
372 spcm->stream[substream->stream].suspend_ignored = false; in sof_pcm_trigger()
379 spcm->stream[substream->stream].d0i3_compatible) { in sof_pcm_trigger()
386 spcm->stream[substream->stream].suspend_ignored = true; in sof_pcm_trigger()
418 ret = sof_pcm_dsp_pcm_free(substream, sdev, spcm); in sof_pcm_trigger()
428 struct snd_sof_pcm *spcm; in sof_pcm_pointer() local
439 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_pointer()
440 if (!spcm) in sof_pcm_pointer()
445 spcm->stream[substream->stream].posn.host_posn); in sof_pcm_pointer()
447 spcm->stream[substream->stream].posn.dai_posn); in sof_pcm_pointer()
451 spcm->pcm.pcm_id, substream->stream, host, dai); in sof_pcm_pointer()
463 struct snd_sof_pcm *spcm; in sof_pcm_open() local
471 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_open()
472 if (!spcm) in sof_pcm_open()
476 spcm->pcm.pcm_id, substream->stream); in sof_pcm_open()
479 caps = &spcm->pcm.caps[substream->stream]; in sof_pcm_open()
516 spcm->stream[substream->stream].posn.host_posn = 0; in sof_pcm_open()
517 spcm->stream[substream->stream].posn.dai_posn = 0; in sof_pcm_open()
518 spcm->stream[substream->stream].substream = substream; in sof_pcm_open()
519 spcm->prepared[substream->stream] = false; in sof_pcm_open()
533 struct snd_sof_pcm *spcm; in sof_pcm_close() local
540 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_close()
541 if (!spcm) in sof_pcm_close()
545 spcm->pcm.pcm_id, substream->stream); in sof_pcm_close()
569 struct snd_sof_pcm *spcm; in sof_pcm_new() local
575 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_new()
576 if (!spcm) { in sof_pcm_new()
582 dev_dbg(component->dev, "creating new PCM %s\n", spcm->pcm.pcm_name); in sof_pcm_new()
585 if (!spcm->pcm.playback) in sof_pcm_new()
588 caps = &spcm->pcm.caps[stream]; in sof_pcm_new()
607 if (!spcm->pcm.capture) in sof_pcm_new()
610 caps = &spcm->pcm.caps[stream]; in sof_pcm_new()