ASoC: amd: acp: Fix devm_snd_soc_register_card(acp-pdm-mach) failure
authorVenkata Prasad Potturu <venkataprasad.potturu@amd.com>
Fri, 25 Apr 2025 06:01:41 +0000 (11:31 +0530)
committerMark Brown <broonie@kernel.org>
Fri, 25 Apr 2025 12:35:07 +0000 (13:35 +0100)
Add condition check to fix devm_snd_soc_register_card(acp-pdm-mach)
deferred probe failure, when pdm DSD entry is not available.

[15.910456] acp_mach acp-pdm-mach: devm_snd_soc_register_card(acp-pdm-mach) failed: -517
[15.910536] platform acp-pdm-mach: deferred probe pending: (reason unknown)

Fixes: 6e60db74b69c2 ("ASoC: amd: acp: Refactor acp machine select")

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20250425060144.1773265-3-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp/acp-legacy-common.c

index b4d68484e06df82de5144e4ffbf802ee71a3342a..ba8db0851daac422a113cdcf44ebe1becbdf4bbd 100644 (file)
@@ -450,7 +450,7 @@ int acp_machine_select(struct acp_chip_info *chip)
        struct snd_soc_acpi_mach *mach;
        int size, platform;
 
-       if (chip->flag == FLAG_AMD_LEGACY_ONLY_DMIC) {
+       if (chip->flag == FLAG_AMD_LEGACY_ONLY_DMIC && chip->is_pdm_dev) {
                platform = chip->acp_rev;
                chip->mach_dev = platform_device_register_data(chip->dev, "acp-pdm-mach",
                                                               PLATFORM_DEVID_NONE, &platform,