> diff --git a/sound/soc/amd/acp/acp-legacy-mach.c b/sound/soc/amd/acp/acp-legacy-mach.c > index 0ad1cf41b308..91140d15691b 100644 > --- a/sound/soc/amd/acp/acp-legacy-mach.c > +++ b/sound/soc/amd/acp/acp-legacy-mach.c > @@ -23,10 +23,10 @@ > static struct acp_card_drvdata rt5682_rt1019_data = { > .hs_cpu_id = I2S_SP, > .amp_cpu_id = I2S_SP, > - .dmic_cpu_id = NONE, > + .dmic_cpu_id = DMIC, > .hs_codec_id = RT5682, > .amp_codec_id = RT1019, > - .dmic_codec_id = NONE, > + .dmic_codec_id = DMIC, this definition is not used? > .gpio_spkr_en = EN_SPKR_GPIO_GB, > }; > > diff --git a/sound/soc/amd/acp/acp-mach-common.c b/sound/soc/amd/acp/acp-mach-common.c > index c9caade5cb74..b163e3a68166 100644 > --- a/sound/soc/amd/acp/acp-mach-common.c > +++ b/sound/soc/amd/acp/acp-mach-common.c > @@ -438,6 +438,8 @@ SND_SOC_DAILINK_DEF(sof_sp, > DAILINK_COMP_ARRAY(COMP_CPU("acp-sof-sp"))); > SND_SOC_DAILINK_DEF(sof_dmic, > DAILINK_COMP_ARRAY(COMP_CPU("acp-sof-dmic"))); > +SND_SOC_DAILINK_DEF(pdm_dmic, > + DAILINK_COMP_ARRAY(COMP_CPU("acp-pdm-dmic"))); > > int acp_sofdsp_dai_links_create(struct snd_soc_card *card) > { > @@ -613,6 +615,19 @@ int acp_legacy_dai_links_create(struct snd_soc_card *card) > links[i].ops = &acp_card_maxim_ops; > links[i].init = acp_card_maxim_init; > } > + i++; > + } > + > + if (drv_data->dmic_cpu_id == DMIC) { > + links[i].name = "acp-dmic-codec"; > + links[i].id = DMIC_BE_ID; > + links[i].codecs = dmic_codec; > + links[i].num_codecs = ARRAY_SIZE(dmic_codec); > + links[i].cpus = pdm_dmic; > + links[i].num_cpus = ARRAY_SIZE(pdm_dmic); > + links[i].platforms = platform_component; > + links[i].num_platforms = ARRAY_SIZE(platform_component); > + links[i].dpcm_capture = 1; > } > > card->dai_link = links; >