ASoC: Intel: sof_sdw: set codec_num = 1 if the device is not aggregated
authorBard Liao <yung-chuan.liao@linux.intel.com>
Wed, 19 Apr 2023 19:55:22 +0000 (14:55 -0500)
committerMark Brown <broonie@kernel.org>
Thu, 20 Apr 2023 11:51:52 +0000 (12:51 +0100)
We assume adr_link->num_adr = 1 if a device is not aggregated. However,
the assumption is not valid if there are different type devices on the
same soundwire link.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Link: https://lore.kernel.org/r/20230419195524.46995-6-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_sdw.c

index 7d398b45d48feb8070218d59ec2cca84cce18586..e5729df4fd447c7d98b71c14dc3e06ab5db996e1 100644 (file)
@@ -961,6 +961,7 @@ static int get_slave_info(const struct snd_soc_acpi_link_adr *adr_link,
        cpu_dai_id[index++] = ffs(adr_link->mask) - 1;
        if (!adr_d->endpoints->aggregated || no_aggregation) {
                *cpu_dai_num = 1;
+               *codec_num = 1;
                *group_id = 0;
                return 0;
        }