mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
ASoC: SOF: Intel: Compare sdw adr directly
We can exclude the sdw unique id and compare the sdw adr directly when we are finding out identical parts. Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20220120232157.199919-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
f67c0c0d3b
commit
7afed13b58
@ -1179,6 +1179,10 @@ static void hda_generic_machine_select(struct snd_sof_dev *sdev,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE)
|
#if IS_ENABLED(CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE)
|
||||||
|
|
||||||
|
#define SDW_CODEC_ADR_MASK(_adr) ((_adr) & (SDW_DISCO_LINK_ID_MASK | SDW_VERSION_MASK | \
|
||||||
|
SDW_MFG_ID_MASK | SDW_PART_ID_MASK))
|
||||||
|
|
||||||
/* Check if all Slaves defined on the link can be found */
|
/* Check if all Slaves defined on the link can be found */
|
||||||
static bool link_slaves_found(struct snd_sof_dev *sdev,
|
static bool link_slaves_found(struct snd_sof_dev *sdev,
|
||||||
const struct snd_soc_acpi_link_adr *link,
|
const struct snd_soc_acpi_link_adr *link,
|
||||||
@ -1220,17 +1224,8 @@ static bool link_slaves_found(struct snd_sof_dev *sdev,
|
|||||||
/* find out how many identical parts are expected */
|
/* find out how many identical parts are expected */
|
||||||
for (k = 0; k < link->num_adr; k++) {
|
for (k = 0; k < link->num_adr; k++) {
|
||||||
u64 adr2 = link->adr_d[k].adr;
|
u64 adr2 = link->adr_d[k].adr;
|
||||||
unsigned int part_id2, link_id2, mfg_id2, version2;
|
|
||||||
|
|
||||||
mfg_id2 = SDW_MFG_ID(adr2);
|
if (SDW_CODEC_ADR_MASK(adr2) == SDW_CODEC_ADR_MASK(adr))
|
||||||
part_id2 = SDW_PART_ID(adr2);
|
|
||||||
link_id2 = SDW_DISCO_LINK_ID(adr2);
|
|
||||||
version2 = SDW_VERSION(adr2);
|
|
||||||
|
|
||||||
if (link_id2 == link_id &&
|
|
||||||
part_id2 == part_id &&
|
|
||||||
mfg_id2 == mfg_id &&
|
|
||||||
version2 == version)
|
|
||||||
expected_part_count++;
|
expected_part_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user