ASoC: Intel: set dpcm_capture for amps
Merge series from Kai Vehmanen <kai.vehmanen@linux.intel.com>: This series addresses problems with echo reference devices reported in: "[BUG][ADL-N] Kernel panic when echo reference stream is opened" https://github.com/thesofproject/linux/issues/4083
This commit is contained in:
@@ -336,6 +336,9 @@ static int create_spk_amp_dai_links(struct device *dev,
|
|||||||
links[*id].platforms = platform_component;
|
links[*id].platforms = platform_component;
|
||||||
links[*id].num_platforms = ARRAY_SIZE(platform_component);
|
links[*id].num_platforms = ARRAY_SIZE(platform_component);
|
||||||
links[*id].dpcm_playback = 1;
|
links[*id].dpcm_playback = 1;
|
||||||
|
/* firmware-generated echo reference */
|
||||||
|
links[*id].dpcm_capture = 1;
|
||||||
|
|
||||||
links[*id].no_pcm = 1;
|
links[*id].no_pcm = 1;
|
||||||
links[*id].cpus = &cpus[*id];
|
links[*id].cpus = &cpus[*id];
|
||||||
links[*id].num_cpus = 1;
|
links[*id].num_cpus = 1;
|
||||||
|
|||||||
@@ -487,8 +487,6 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
|
|||||||
links[id].num_codecs = ARRAY_SIZE(max_98373_components);
|
links[id].num_codecs = ARRAY_SIZE(max_98373_components);
|
||||||
links[id].init = max_98373_spk_codec_init;
|
links[id].init = max_98373_spk_codec_init;
|
||||||
links[id].ops = &max_98373_ops;
|
links[id].ops = &max_98373_ops;
|
||||||
/* feedback stream */
|
|
||||||
links[id].dpcm_capture = 1;
|
|
||||||
} else if (sof_nau8825_quirk &
|
} else if (sof_nau8825_quirk &
|
||||||
SOF_MAX98360A_SPEAKER_AMP_PRESENT) {
|
SOF_MAX98360A_SPEAKER_AMP_PRESENT) {
|
||||||
max_98360a_dai_link(&links[id]);
|
max_98360a_dai_link(&links[id]);
|
||||||
@@ -506,6 +504,9 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
|
|||||||
links[id].platforms = platform_component;
|
links[id].platforms = platform_component;
|
||||||
links[id].num_platforms = ARRAY_SIZE(platform_component);
|
links[id].num_platforms = ARRAY_SIZE(platform_component);
|
||||||
links[id].dpcm_playback = 1;
|
links[id].dpcm_playback = 1;
|
||||||
|
/* feedback stream or firmware-generated echo reference */
|
||||||
|
links[id].dpcm_capture = 1;
|
||||||
|
|
||||||
links[id].no_pcm = 1;
|
links[id].no_pcm = 1;
|
||||||
links[id].cpus = &cpus[id];
|
links[id].cpus = &cpus[id];
|
||||||
links[id].num_cpus = 1;
|
links[id].num_cpus = 1;
|
||||||
|
|||||||
@@ -761,8 +761,6 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
|
|||||||
links[id].num_codecs = ARRAY_SIZE(max_98373_components);
|
links[id].num_codecs = ARRAY_SIZE(max_98373_components);
|
||||||
links[id].init = max_98373_spk_codec_init;
|
links[id].init = max_98373_spk_codec_init;
|
||||||
links[id].ops = &max_98373_ops;
|
links[id].ops = &max_98373_ops;
|
||||||
/* feedback stream */
|
|
||||||
links[id].dpcm_capture = 1;
|
|
||||||
} else if (sof_rt5682_quirk &
|
} else if (sof_rt5682_quirk &
|
||||||
SOF_MAX98360A_SPEAKER_AMP_PRESENT) {
|
SOF_MAX98360A_SPEAKER_AMP_PRESENT) {
|
||||||
max_98360a_dai_link(&links[id]);
|
max_98360a_dai_link(&links[id]);
|
||||||
@@ -789,6 +787,9 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
|
|||||||
links[id].platforms = platform_component;
|
links[id].platforms = platform_component;
|
||||||
links[id].num_platforms = ARRAY_SIZE(platform_component);
|
links[id].num_platforms = ARRAY_SIZE(platform_component);
|
||||||
links[id].dpcm_playback = 1;
|
links[id].dpcm_playback = 1;
|
||||||
|
/* feedback stream or firmware-generated echo reference */
|
||||||
|
links[id].dpcm_capture = 1;
|
||||||
|
|
||||||
links[id].no_pcm = 1;
|
links[id].no_pcm = 1;
|
||||||
links[id].cpus = &cpus[id];
|
links[id].cpus = &cpus[id];
|
||||||
links[id].num_cpus = 1;
|
links[id].num_cpus = 1;
|
||||||
|
|||||||
@@ -258,13 +258,12 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
|
|||||||
sof_rt1308_dai_link(&links[id]);
|
sof_rt1308_dai_link(&links[id]);
|
||||||
} else if (sof_ssp_amp_quirk & SOF_CS35L41_SPEAKER_AMP_PRESENT) {
|
} else if (sof_ssp_amp_quirk & SOF_CS35L41_SPEAKER_AMP_PRESENT) {
|
||||||
cs35l41_set_dai_link(&links[id]);
|
cs35l41_set_dai_link(&links[id]);
|
||||||
|
|
||||||
/* feedback from amplifier */
|
|
||||||
links[id].dpcm_capture = 1;
|
|
||||||
}
|
}
|
||||||
links[id].platforms = platform_component;
|
links[id].platforms = platform_component;
|
||||||
links[id].num_platforms = ARRAY_SIZE(platform_component);
|
links[id].num_platforms = ARRAY_SIZE(platform_component);
|
||||||
links[id].dpcm_playback = 1;
|
links[id].dpcm_playback = 1;
|
||||||
|
/* feedback from amplifier or firmware-generated echo reference */
|
||||||
|
links[id].dpcm_capture = 1;
|
||||||
links[id].no_pcm = 1;
|
links[id].no_pcm = 1;
|
||||||
links[id].cpus = &cpus[id];
|
links[id].cpus = &cpus[id];
|
||||||
links[id].num_cpus = 1;
|
links[id].num_cpus = 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user