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()
66 struct snd_sof_pcm *spcm; in snd_sof_pcm_period_elapsed() local
68 spcm = snd_sof_find_spcm_dai(component, rtd); in snd_sof_pcm_period_elapsed()
69 if (!spcm) { in snd_sof_pcm_period_elapsed()
83 schedule_work(&spcm->stream[substream->stream].period_elapsed_work); in snd_sof_pcm_period_elapsed()
89 struct snd_sof_pcm *spcm, struct snd_pcm_hw_params *params, in sof_pcm_setup_connected_widgets() argument
102 spcm_err(spcm, dir, "dai %s has no valid %s path\n", in sof_pcm_setup_connected_widgets()
107 spcm->stream[dir].list = list; in sof_pcm_setup_connected_widgets()
109 ret = sof_widget_list_setup(sdev, spcm, params, platform_params, dir); in sof_pcm_setup_connected_widgets()
111 spcm_err(spcm, dir, "Widget list set up failed\n"); in sof_pcm_setup_connected_widgets()
112 spcm->stream[dir].list = NULL; in sof_pcm_setup_connected_widgets()
130 struct snd_sof_pcm *spcm; in sof_pcm_hw_params() local
137 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_hw_params()
138 if (!spcm) in sof_pcm_hw_params()
141 spcm_dbg(spcm, substream->stream, "Entry: hw_params\n"); in sof_pcm_hw_params()
147 if (pcm_ops && pcm_ops->hw_free && spcm->prepared[substream->stream]) { in sof_pcm_hw_params()
152 spcm->prepared[substream->stream] = false; in sof_pcm_hw_params()
157 spcm_err(spcm, substream->stream, "platform hw params failed\n"); in sof_pcm_hw_params()
162 if (!spcm->stream[substream->stream].list) { in sof_pcm_hw_params()
163 ret = sof_pcm_setup_connected_widgets(sdev, rtd, spcm, params, &platform_params, in sof_pcm_hw_params()
184 spcm->prepared[substream->stream] = true; in sof_pcm_hw_params()
187 memcpy(&spcm->params[substream->stream], params, sizeof(*params)); in sof_pcm_hw_params()
194 struct snd_sof_pcm *spcm, int dir, in sof_pcm_stream_free() argument
201 if (spcm->prepared[substream->stream]) { in sof_pcm_stream_free()
211 spcm_err(spcm, substream->stream, in sof_pcm_stream_free()
217 spcm->prepared[substream->stream] = false; in sof_pcm_stream_free()
218 spcm->pending_stop[substream->stream] = false; in sof_pcm_stream_free()
224 spcm_err(spcm, substream->stream, in sof_pcm_stream_free()
232 ret = sof_widget_list_free(sdev, spcm, dir); in sof_pcm_stream_free()
234 spcm_err(spcm, substream->stream, in sof_pcm_stream_free()
247 struct snd_sof_pcm *spcm; in sof_pcm_free_all_streams() local
250 list_for_each_entry(spcm, &sdev->pcm_list, list) { in sof_pcm_free_all_streams()
252 substream = spcm->stream[dir].substream; in sof_pcm_free_all_streams()
255 spcm->stream[dir].suspend_ignored) in sof_pcm_free_all_streams()
258 if (spcm->stream[dir].list) { in sof_pcm_free_all_streams()
259 ret = sof_pcm_stream_free(sdev, substream, spcm, in sof_pcm_free_all_streams()
275 struct snd_sof_pcm *spcm; in sof_pcm_hw_free() local
282 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_hw_free()
283 if (!spcm) in sof_pcm_hw_free()
286 spcm_dbg(spcm, substream->stream, "Entry: hw_free\n"); in sof_pcm_hw_free()
288 ret = sof_pcm_stream_free(sdev, substream, spcm, substream->stream, true); in sof_pcm_hw_free()
290 cancel_work_sync(&spcm->stream[substream->stream].period_elapsed_work); in sof_pcm_hw_free()
300 struct snd_sof_pcm *spcm; in sof_pcm_prepare() local
307 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_prepare()
308 if (!spcm) in sof_pcm_prepare()
311 spcm_dbg(spcm, substream->stream, "Entry: prepare\n"); in sof_pcm_prepare()
313 if (spcm->prepared[substream->stream]) { in sof_pcm_prepare()
314 if (!spcm->pending_stop[substream->stream]) in sof_pcm_prepare()
321 ret = sof_pcm_stream_free(sdev, substream, spcm, substream->stream, true); in sof_pcm_prepare()
328 substream, &spcm->params[substream->stream]); in sof_pcm_prepare()
330 spcm_err(spcm, substream->stream, in sof_pcm_prepare()
348 struct snd_sof_pcm *spcm; in sof_pcm_trigger() local
357 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_trigger()
358 if (!spcm) in sof_pcm_trigger()
361 spcm_dbg(spcm, substream->stream, "Entry: trigger (cmd: %d)\n", cmd); in sof_pcm_trigger()
363 spcm->pending_stop[substream->stream] = false; in sof_pcm_trigger()
374 if (spcm->stream[substream->stream].suspend_ignored) { in sof_pcm_trigger()
380 spcm->stream[substream->stream].suspend_ignored = false; in sof_pcm_trigger()
394 spcm->stream[substream->stream].d0i3_compatible) { in sof_pcm_trigger()
395 spcm->stream[substream->stream].suspend_ignored = true; in sof_pcm_trigger()
410 spcm_err(spcm, substream->stream, "Unhandled trigger cmd %d\n", cmd); in sof_pcm_trigger()
441 spcm->pending_stop[substream->stream] = true; in sof_pcm_trigger()
449 ret = sof_pcm_stream_free(sdev, substream, spcm, substream->stream, false); in sof_pcm_trigger()
460 struct snd_sof_pcm *spcm; in sof_pcm_pointer() local
478 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_pointer()
479 if (!spcm) in sof_pcm_pointer()
484 spcm->stream[substream->stream].posn.host_posn); in sof_pcm_pointer()
486 spcm->stream[substream->stream].posn.dai_posn); in sof_pcm_pointer()
488 trace_sof_pcm_pointer_position(sdev, spcm, substream, host, dai); in sof_pcm_pointer()
500 struct snd_sof_pcm *spcm; in sof_pcm_open() local
508 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_open()
509 if (!spcm) in sof_pcm_open()
512 spcm_dbg(spcm, substream->stream, "Entry: open\n"); in sof_pcm_open()
514 caps = &spcm->pcm.caps[substream->stream]; in sof_pcm_open()
535 spcm->stream[substream->stream].posn.host_posn = 0; in sof_pcm_open()
536 spcm->stream[substream->stream].posn.dai_posn = 0; in sof_pcm_open()
537 spcm->stream[substream->stream].substream = substream; in sof_pcm_open()
538 spcm->prepared[substream->stream] = false; in sof_pcm_open()
542 spcm_err(spcm, substream->stream, in sof_pcm_open()
547 spcm_dbg(spcm, substream->stream, "period bytes min %zd, max %zd\n", in sof_pcm_open()
549 spcm_dbg(spcm, substream->stream, "period count min %d, max %d\n", in sof_pcm_open()
551 spcm_dbg(spcm, substream->stream, "buffer bytes max %zd\n", runtime->hw.buffer_bytes_max); in sof_pcm_open()
561 struct snd_sof_pcm *spcm; in sof_pcm_close() local
568 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_close()
569 if (!spcm) in sof_pcm_close()
572 spcm_dbg(spcm, substream->stream, "Entry: close\n"); in sof_pcm_close()
576 spcm_err(spcm, substream->stream, in sof_pcm_close()
584 spcm->stream[substream->stream].substream = NULL; in sof_pcm_close()
598 struct snd_sof_pcm *spcm; in sof_pcm_new() local
604 spcm = snd_sof_find_spcm_dai(component, rtd); in sof_pcm_new()
605 if (!spcm) { in sof_pcm_new()
611 dev_dbg(spcm->scomp->dev, "pcm%u (%s): Entry: pcm_construct\n", in sof_pcm_new()
612 spcm->pcm.pcm_id, spcm->pcm.pcm_name); in sof_pcm_new()
615 if (!spcm->pcm.playback) in sof_pcm_new()
618 caps = &spcm->pcm.caps[stream]; in sof_pcm_new()
621 spcm_err(spcm, stream, "NULL playback substream!\n"); in sof_pcm_new()
626 spcm_dbg(spcm, stream, "allocate %s playback DMA buffer size 0x%x max 0x%x\n", in sof_pcm_new()
636 if (!spcm->pcm.capture) in sof_pcm_new()
639 caps = &spcm->pcm.caps[stream]; in sof_pcm_new()
642 spcm_err(spcm, stream, "NULL capture substream!\n"); in sof_pcm_new()
647 spcm_dbg(spcm, stream, "allocate %s capture DMA buffer size 0x%x max 0x%x\n", in sof_pcm_new()