Re: [PATCH] ASoC: amd: acp: Fix for ACP SOF dmic tplg component load failure

Mukunda,Vijendar
2024-11-04T14:35:41Z

On 04/11/24 19:52, Mario Limonciello wrote:
> On 11/4/2024 03:13, Venkata Prasad Potturu wrote:
>> Stream name mismatch with topology file causes tplg load failure.
>>
>> As SOF framework assigns dailink->stream name, overriding stream name
>> other than link name causes SOF dmic component load failure.
>>
>> [   35.474995] snd_sof_amd_acp70 0000:c4:00.5: error: can't connect DAI
>> ACPDMIC0.IN stream acp-dmic-codec
>> [   35.475001] snd_sof_amd_acp70 0000:c4:00.5: failed to add widget type 28
>> name : ACPDMIC0.IN stream acp-dmic-codec
>> [   35.475013] sof_mach acp70-dsp: ASoC: failed to load widget ACPDMIC0.IN
>> [   35.475018] sof_mach acp70-dsp: ASoC: topology: could not load header: -22
>> [   35.475072] snd_sof_amd_acp70 0000:c4:00.5: error: tplg component load
>> failed -22
>> [   35.475083] snd_sof_amd_acp70 0000:c4:00.5: error: failed to load DSP
>> topology -22
>> [   35.475090] snd_sof_amd_acp70 0000:c4:00.5: ASoC: error at
>> snd_soc_component_probe on 0000:c4:00.5: -22
>> [   35.475117] sof_mach acp70-dsp: ASoC: failed to instantiate card -22
>> [   35.475254] sof_mach acp70-dsp: error -EINVAL: Failed to register
>> card(sof-acp70-dsp)
>> [   35.475261] sof_mach acp70-dsp: probe with driver sof_mach failed with
>> error -22
>>
>> Fixes: b2385de2ae11 ("ASoC: amd: acp: Add stream name to ACP PDM DMIC devices")
>>
>> Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
>
> Thanks. I was aiming to sort out (null) from `arecord -l` but functionality is
> more important.
>
> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
>
> Mark,
>
> Up to you but alternatively, you can also drop my existing patch and force
> push your for-next branch.

@Mario: Your changes are required for Legacy machine driver.
This patch can go as a fix on top of your commit.

>
>> ---
>>   sound/soc/amd/acp/acp-mach-common.c | 1 -
>>   1 file changed, 1 deletion(-)
>>
>> diff --git a/sound/soc/amd/acp/acp-mach-common.c
>> b/sound/soc/amd/acp/acp-mach-common.c
>> index 67aa0ad83486..d314253207d5 100644
>> --- a/sound/soc/amd/acp/acp-mach-common.c
>> +++ b/sound/soc/amd/acp/acp-mach-common.c
>> @@ -1561,7 +1561,6 @@ int acp_sofdsp_dai_links_create(struct snd_soc_card *card)
>>         if (drv_data->dmic_cpu_id == DMIC) {
>>           links[i].name = "acp-dmic-codec";
>> -        links[i].stream_name = "DMIC capture";
>>           links[i].id = DMIC_BE_ID;
>>           links[i].codecs = dmic_codec;
>>           links[i].num_codecs = ARRAY_SIZE(dmic_codec);
>