mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
ASoC: SOF: topology: parse and store d0i3_compatible flag
Parses the token from tplg file and store it to snd_sof_pcm_stream d0i3_compatible flag, which can be used later for d0ix transition management. Signed-off-by: Keyon Jie <yang.jie@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20191025224122.7718-10-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
4a94940988
commit
c5232c0171
@ -2307,6 +2307,7 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
|
||||
{
|
||||
struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
|
||||
struct snd_soc_tplg_stream_caps *caps;
|
||||
struct snd_soc_tplg_private *private = &pcm->priv;
|
||||
struct snd_sof_pcm *spcm;
|
||||
int stream = SNDRV_PCM_STREAM_PLAYBACK;
|
||||
int ret = 0;
|
||||
@ -2329,10 +2330,22 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
|
||||
dai_drv->dobj.private = spcm;
|
||||
list_add(&spcm->list, &sdev->pcm_list);
|
||||
|
||||
ret = sof_parse_tokens(scomp, spcm, stream_tokens,
|
||||
ARRAY_SIZE(stream_tokens), private->array,
|
||||
le32_to_cpu(private->size));
|
||||
if (ret) {
|
||||
dev_err(sdev->dev, "error: parse stream tokens failed %d\n",
|
||||
le32_to_cpu(private->size));
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* do we need to allocate playback PCM DMA pages */
|
||||
if (!spcm->pcm.playback)
|
||||
goto capture;
|
||||
|
||||
dev_vdbg(sdev->dev, "tplg: pcm %s stream tokens: playback d0i3:%d\n",
|
||||
spcm->pcm.pcm_name, spcm->stream[0].d0i3_compatible);
|
||||
|
||||
caps = &spcm->pcm.caps[stream];
|
||||
|
||||
/* allocate playback page table buffer */
|
||||
@ -2360,6 +2373,9 @@ capture:
|
||||
if (!spcm->pcm.capture)
|
||||
return ret;
|
||||
|
||||
dev_vdbg(sdev->dev, "tplg: pcm %s stream tokens: capture d0i3:%d\n",
|
||||
spcm->pcm.pcm_name, spcm->stream[1].d0i3_compatible);
|
||||
|
||||
caps = &spcm->pcm.caps[stream];
|
||||
|
||||
/* allocate capture page table buffer */
|
||||
|
Loading…
Reference in New Issue
Block a user