spcm               30 sound/soc/sof/core.c 	struct snd_sof_pcm *spcm;
spcm               32 sound/soc/sof/core.c 	list_for_each_entry(spcm, &sdev->pcm_list, list) {
spcm               34 sound/soc/sof/core.c 		if (strcmp(spcm->pcm.dai_name, name) == 0)
spcm               35 sound/soc/sof/core.c 			return spcm;
spcm               38 sound/soc/sof/core.c 		if (*spcm->pcm.caps[0].name &&
spcm               39 sound/soc/sof/core.c 		    !strcmp(spcm->pcm.caps[0].name, name))
spcm               40 sound/soc/sof/core.c 			return spcm;
spcm               43 sound/soc/sof/core.c 		if (*spcm->pcm.caps[1].name &&
spcm               44 sound/soc/sof/core.c 		    !strcmp(spcm->pcm.caps[1].name, name))
spcm               45 sound/soc/sof/core.c 			return spcm;
spcm               55 sound/soc/sof/core.c 	struct snd_sof_pcm *spcm;
spcm               57 sound/soc/sof/core.c 	list_for_each_entry(spcm, &sdev->pcm_list, list) {
spcm               58 sound/soc/sof/core.c 		if (spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].comp_id == comp_id) {
spcm               60 sound/soc/sof/core.c 			return spcm;
spcm               62 sound/soc/sof/core.c 		if (spcm->stream[SNDRV_PCM_STREAM_CAPTURE].comp_id == comp_id) {
spcm               64 sound/soc/sof/core.c 			return spcm;
spcm               74 sound/soc/sof/core.c 	struct snd_sof_pcm *spcm;
spcm               76 sound/soc/sof/core.c 	list_for_each_entry(spcm, &sdev->pcm_list, list) {
spcm               77 sound/soc/sof/core.c 		if (le32_to_cpu(spcm->pcm.pcm_id) == pcm_id)
spcm               78 sound/soc/sof/core.c 			return spcm;
spcm              143 sound/soc/sof/intel/hda-pcm.c 	struct snd_sof_pcm *spcm;
spcm              146 sound/soc/sof/intel/hda-pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              147 sound/soc/sof/intel/hda-pcm.c 	if (!spcm) {
spcm              155 sound/soc/sof/intel/hda-pcm.c 		pos = spcm->stream[substream->stream].posn.host_posn;
spcm              412 sound/soc/sof/ipc.c 	struct snd_sof_pcm *spcm;
spcm              415 sound/soc/sof/ipc.c 	spcm = snd_sof_find_spcm_comp(sdev, msg_id, &direction);
spcm              416 sound/soc/sof/ipc.c 	if (!spcm) {
spcm              423 sound/soc/sof/ipc.c 	stream = &spcm->stream[direction];
spcm              441 sound/soc/sof/ipc.c 	struct snd_sof_pcm *spcm;
spcm              444 sound/soc/sof/ipc.c 	spcm = snd_sof_find_spcm_comp(sdev, msg_id, &direction);
spcm              445 sound/soc/sof/ipc.c 	if (!spcm) {
spcm              451 sound/soc/sof/ipc.c 	stream = &spcm->stream[direction];
spcm              487 sound/soc/sof/ipc.c 			    struct snd_sof_pcm *spcm, int direction,
spcm              496 sound/soc/sof/ipc.c 	stream.comp_id = spcm->stream[direction].comp_id;
spcm               29 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm               33 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm               34 sound/soc/sof/pcm.c 	if (!spcm)
spcm               38 sound/soc/sof/pcm.c 		spcm->stream[stream].page_table.area, size);
spcm               41 sound/soc/sof/pcm.c static int sof_pcm_dsp_params(struct snd_sof_pcm *spcm, struct snd_pcm_substream *substream,
spcm               44 sound/soc/sof/pcm.c 	struct snd_sof_dev *sdev = spcm->sdev;
spcm               50 sound/soc/sof/pcm.c 			spcm->pcm.pcm_id);
spcm               76 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm               78 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm               79 sound/soc/sof/pcm.c 	if (!spcm) {
spcm               93 sound/soc/sof/pcm.c 	schedule_work(&spcm->stream[substream->stream].period_elapsed_work);
spcm              106 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm              115 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              116 sound/soc/sof/pcm.c 	if (!spcm)
spcm              120 sound/soc/sof/pcm.c 		spcm->pcm.pcm_id, substream->stream);
spcm              128 sound/soc/sof/pcm.c 			params_buffer_bytes(params), spcm->pcm.pcm_id);
spcm              150 sound/soc/sof/pcm.c 	pcm.comp_id = spcm->stream[substream->stream].comp_id;
spcm              153 sound/soc/sof/pcm.c 		spcm->stream[substream->stream].page_table.addr;
spcm              207 sound/soc/sof/pcm.c 	ret = sof_pcm_dsp_params(spcm, substream, &ipc_params_reply);
spcm              211 sound/soc/sof/pcm.c 	spcm->prepared[substream->stream] = true;
spcm              214 sound/soc/sof/pcm.c 	memcpy(&spcm->params[substream->stream], params, sizeof(*params));
spcm              221 sound/soc/sof/pcm.c 				struct snd_sof_pcm *spcm)
spcm              229 sound/soc/sof/pcm.c 	stream.comp_id = spcm->stream[substream->stream].comp_id;
spcm              235 sound/soc/sof/pcm.c 		spcm->prepared[substream->stream] = false;
spcm              246 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm              253 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              254 sound/soc/sof/pcm.c 	if (!spcm)
spcm              257 sound/soc/sof/pcm.c 	dev_dbg(sdev->dev, "pcm: free stream %d dir %d\n", spcm->pcm.pcm_id,
spcm              260 sound/soc/sof/pcm.c 	if (spcm->prepared[substream->stream]) {
spcm              261 sound/soc/sof/pcm.c 		ret = sof_pcm_dsp_pcm_free(substream, sdev, spcm);
spcm              268 sound/soc/sof/pcm.c 	cancel_work_sync(&spcm->stream[substream->stream].period_elapsed_work);
spcm              285 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm              292 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              293 sound/soc/sof/pcm.c 	if (!spcm)
spcm              296 sound/soc/sof/pcm.c 	if (spcm->prepared[substream->stream])
spcm              299 sound/soc/sof/pcm.c 	dev_dbg(sdev->dev, "pcm: prepare stream %d dir %d\n", spcm->pcm.pcm_id,
spcm              303 sound/soc/sof/pcm.c 	ret = sof_pcm_hw_params(substream, &spcm->params[substream->stream]);
spcm              322 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm              333 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              334 sound/soc/sof/pcm.c 	if (!spcm)
spcm              338 sound/soc/sof/pcm.c 		spcm->pcm.pcm_id, substream->stream, cmd);
spcm              342 sound/soc/sof/pcm.c 	stream.comp_id = spcm->stream[substream->stream].comp_id;
spcm              393 sound/soc/sof/pcm.c 		ret = sof_pcm_dsp_pcm_free(substream, sdev, spcm);
spcm              404 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm              415 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              416 sound/soc/sof/pcm.c 	if (!spcm)
spcm              421 sound/soc/sof/pcm.c 			       spcm->stream[substream->stream].posn.host_posn);
spcm              423 sound/soc/sof/pcm.c 			      spcm->stream[substream->stream].posn.dai_posn);
spcm              426 sound/soc/sof/pcm.c 		spcm->pcm.pcm_id, substream->stream, host, dai);
spcm              438 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm              446 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              447 sound/soc/sof/pcm.c 	if (!spcm)
spcm              450 sound/soc/sof/pcm.c 	dev_dbg(sdev->dev, "pcm: open stream %d dir %d\n", spcm->pcm.pcm_id,
spcm              453 sound/soc/sof/pcm.c 	INIT_WORK(&spcm->stream[substream->stream].period_elapsed_work,
spcm              456 sound/soc/sof/pcm.c 	caps = &spcm->pcm.caps[substream->stream];
spcm              496 sound/soc/sof/pcm.c 	spcm->stream[substream->stream].posn.host_posn = 0;
spcm              497 sound/soc/sof/pcm.c 	spcm->stream[substream->stream].posn.dai_posn = 0;
spcm              498 sound/soc/sof/pcm.c 	spcm->stream[substream->stream].substream = substream;
spcm              499 sound/soc/sof/pcm.c 	spcm->prepared[substream->stream] = false;
spcm              514 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm              521 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              522 sound/soc/sof/pcm.c 	if (!spcm)
spcm              525 sound/soc/sof/pcm.c 	dev_dbg(sdev->dev, "pcm: close stream %d dir %d\n", spcm->pcm.pcm_id,
spcm              563 sound/soc/sof/pcm.c 	struct snd_sof_pcm *spcm;
spcm              569 sound/soc/sof/pcm.c 	spcm = snd_sof_find_spcm_dai(sdev, rtd);
spcm              570 sound/soc/sof/pcm.c 	if (!spcm) {
spcm              576 sound/soc/sof/pcm.c 	dev_dbg(sdev->dev, "creating new PCM %s\n", spcm->pcm.pcm_name);
spcm              579 sound/soc/sof/pcm.c 	if (!spcm->pcm.playback)
spcm              582 sound/soc/sof/pcm.c 	caps = &spcm->pcm.caps[stream];
spcm              596 sound/soc/sof/pcm.c 	if (!spcm->pcm.capture)
spcm              599 sound/soc/sof/pcm.c 	caps = &spcm->pcm.caps[stream];
spcm              219 sound/soc/sof/pm.c 	struct snd_sof_pcm *spcm;
spcm              228 sound/soc/sof/pm.c 	list_for_each_entry(spcm, &sdev->pcm_list, list) {
spcm              230 sound/soc/sof/pm.c 			substream = spcm->stream[dir].substream;
spcm              236 sound/soc/sof/pm.c 				spcm->prepared[dir] = false;
spcm              514 sound/soc/sof/sof-priv.h 	struct snd_sof_pcm *spcm = NULL;
spcm              516 sound/soc/sof/sof-priv.h 	list_for_each_entry(spcm, &sdev->pcm_list, list) {
spcm              517 sound/soc/sof/sof-priv.h 		if (le32_to_cpu(spcm->pcm.dai_id) == rtd->dai_link->id)
spcm              518 sound/soc/sof/sof-priv.h 			return spcm;
spcm              537 sound/soc/sof/sof-priv.h 			    struct snd_sof_pcm *spcm, int direction,
spcm               59 sound/soc/sof/topology.c 	struct snd_sof_pcm *spcm;
spcm               65 sound/soc/sof/topology.c 	spcm = snd_sof_find_spcm_name(sdev, swidget->widget->sname);
spcm               66 sound/soc/sof/topology.c 	if (!spcm) {
spcm               72 sound/soc/sof/topology.c 	params = &spcm->params[dir];
spcm             1282 sound/soc/sof/topology.c static int spcm_bind(struct snd_sof_dev *sdev, struct snd_sof_pcm *spcm,
spcm             1288 sound/soc/sof/topology.c 						 spcm->pcm.caps[dir].name,
spcm             1295 sound/soc/sof/topology.c 	spcm->stream[dir].comp_id = host_widget->comp_id;
spcm             2275 sound/soc/sof/topology.c 	struct snd_sof_pcm *spcm;
spcm             2283 sound/soc/sof/topology.c 	spcm = kzalloc(sizeof(*spcm), GFP_KERNEL);
spcm             2284 sound/soc/sof/topology.c 	if (!spcm)
spcm             2287 sound/soc/sof/topology.c 	spcm->sdev = sdev;
spcm             2288 sound/soc/sof/topology.c 	spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].comp_id = COMP_ID_UNASSIGNED;
spcm             2289 sound/soc/sof/topology.c 	spcm->stream[SNDRV_PCM_STREAM_CAPTURE].comp_id = COMP_ID_UNASSIGNED;
spcm             2292 sound/soc/sof/topology.c 		spcm->pcm = *pcm;
spcm             2295 sound/soc/sof/topology.c 	dai_drv->dobj.private = spcm;
spcm             2296 sound/soc/sof/topology.c 	list_add(&spcm->list, &sdev->pcm_list);
spcm             2299 sound/soc/sof/topology.c 	if (!spcm->pcm.playback)
spcm             2302 sound/soc/sof/topology.c 	caps = &spcm->pcm.caps[stream];
spcm             2306 sound/soc/sof/topology.c 				  PAGE_SIZE, &spcm->stream[stream].page_table);
spcm             2315 sound/soc/sof/topology.c 	ret = spcm_bind(sdev, spcm, stream);
spcm             2326 sound/soc/sof/topology.c 	if (!spcm->pcm.capture)
spcm             2329 sound/soc/sof/topology.c 	caps = &spcm->pcm.caps[stream];
spcm             2333 sound/soc/sof/topology.c 				  PAGE_SIZE, &spcm->stream[stream].page_table);
spcm             2341 sound/soc/sof/topology.c 	ret = spcm_bind(sdev, spcm, stream);
spcm             2345 sound/soc/sof/topology.c 		snd_dma_free_pages(&spcm->stream[stream].page_table);
spcm             2352 sound/soc/sof/topology.c 	if (spcm->pcm.playback)
spcm             2353 sound/soc/sof/topology.c 		snd_dma_free_pages(&spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].page_table);
spcm             2361 sound/soc/sof/topology.c 	struct snd_sof_pcm *spcm = dobj->private;
spcm             2364 sound/soc/sof/topology.c 	if (spcm->pcm.playback)
spcm             2365 sound/soc/sof/topology.c 		snd_dma_free_pages(&spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].page_table);
spcm             2367 sound/soc/sof/topology.c 	if (spcm->pcm.capture)
spcm             2368 sound/soc/sof/topology.c 		snd_dma_free_pages(&spcm->stream[SNDRV_PCM_STREAM_CAPTURE].page_table);
spcm             2371 sound/soc/sof/topology.c 	list_del(&spcm->list);
spcm             2372 sound/soc/sof/topology.c 	kfree(spcm);