Lines Matching refs:spcm

1149 static int spcm_bind(struct snd_soc_component *scomp, struct snd_sof_pcm *spcm,
1159 spcm->pcm.caps[dir].name,
1166 spcm->stream[dir].comp_id = host_widget->comp_id;
1711 struct snd_sof_pcm *spcm;
1719 spcm = kzalloc(sizeof(*spcm), GFP_KERNEL);
1720 if (!spcm)
1723 spcm->scomp = scomp;
1726 spcm->stream[stream].comp_id = COMP_ID_UNASSIGNED;
1728 snd_sof_compr_init_elapsed_work(&spcm->stream[stream].period_elapsed_work);
1730 snd_sof_pcm_init_elapsed_work(&spcm->stream[stream].period_elapsed_work);
1733 spcm->pcm = *pcm;
1738 ret = ipc_pcm_ops->pcm_setup(sdev, spcm);
1740 kfree(spcm);
1745 dai_drv->dobj.private = spcm;
1746 list_add(&spcm->list, &sdev->pcm_list);
1748 ret = sof_parse_tokens(scomp, spcm, stream_tokens,
1758 if (!spcm->pcm.playback)
1763 caps = &spcm->pcm.caps[stream];
1767 PAGE_SIZE, &spcm->stream[stream].page_table);
1776 ret = spcm_bind(scomp, spcm, stream);
1787 if (!spcm->pcm.capture)
1790 caps = &spcm->pcm.caps[stream];
1794 PAGE_SIZE, &spcm->stream[stream].page_table);
1802 ret = spcm_bind(scomp, spcm, stream);
1806 snd_dma_free_pages(&spcm->stream[stream].page_table);
1813 if (spcm->pcm.playback)
1814 snd_dma_free_pages(&spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].page_table);
1824 struct snd_sof_pcm *spcm = dobj->private;
1827 if (spcm->pcm.playback)
1828 snd_dma_free_pages(&spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].page_table);
1830 if (spcm->pcm.capture)
1831 snd_dma_free_pages(&spcm->stream[SNDRV_PCM_STREAM_CAPTURE].page_table);
1835 ipc_pcm_ops->pcm_free(sdev, spcm);
1837 /* remove from list and free spcm */
1838 list_del(&spcm->list);
1839 kfree(spcm);