@@ -1254,7 +1254,8 @@ int asoc_sdw_init_simple_dai_link(struct device *dev, struct snd_soc_dai_link *d
12541254}
12551255EXPORT_SYMBOL_NS (asoc_sdw_init_simple_dai_link , "SND_SOC_SDW_UTILS" );
12561256
1257- int asoc_sdw_count_sdw_endpoints (struct snd_soc_card * card , int * num_devs , int * num_ends )
1257+ int asoc_sdw_count_sdw_endpoints (struct snd_soc_card * card ,
1258+ int * num_devs , int * num_ends , int * num_aux )
12581259{
12591260 struct device * dev = card -> dev ;
12601261 struct snd_soc_acpi_mach * mach = dev_get_platdata (dev );
@@ -1265,8 +1266,18 @@ int asoc_sdw_count_sdw_endpoints(struct snd_soc_card *card, int *num_devs, int *
12651266 for (adr_link = mach_params -> links ; adr_link -> num_adr ; adr_link ++ ) {
12661267 * num_devs += adr_link -> num_adr ;
12671268
1268- for (i = 0 ; i < adr_link -> num_adr ; i ++ )
1269- * num_ends += adr_link -> adr_d [i ].num_endpoints ;
1269+ for (i = 0 ; i < adr_link -> num_adr ; i ++ ) {
1270+ const struct snd_soc_acpi_adr_device * adr_dev = & adr_link -> adr_d [i ];
1271+ struct asoc_sdw_codec_info * codec_info ;
1272+
1273+ * num_ends += adr_dev -> num_endpoints ;
1274+
1275+ codec_info = asoc_sdw_find_codec_info_part (adr_dev -> adr );
1276+ if (!codec_info )
1277+ return - EINVAL ;
1278+
1279+ * num_aux += codec_info -> aux_num ;
1280+ }
12701281 }
12711282
12721283 dev_dbg (dev , "Found %d devices with %d endpoints\n" , * num_devs , * num_ends );
@@ -1397,6 +1408,7 @@ static int is_sdca_endpoint_present(struct device *dev,
13971408}
13981409
13991410int asoc_sdw_parse_sdw_endpoints (struct snd_soc_card * card ,
1411+ struct snd_soc_aux_dev * soc_aux ,
14001412 struct asoc_sdw_dailink * soc_dais ,
14011413 struct asoc_sdw_endpoint * soc_ends ,
14021414 int * num_devs )
@@ -1436,6 +1448,11 @@ int asoc_sdw_parse_sdw_endpoints(struct snd_soc_card *card,
14361448 if (!codec_info )
14371449 return - EINVAL ;
14381450
1451+ for (j = 0 ; j < codec_info -> aux_num ; j ++ ) {
1452+ soc_aux -> dlc .name = codec_info -> auxs [j ].codec_name ;
1453+ soc_aux ++ ;
1454+ }
1455+
14391456 ctx -> ignore_internal_dmic |= codec_info -> ignore_internal_dmic ;
14401457
14411458 if (codec_info -> count_sidecar && codec_info -> add_sidecar ) {
0 commit comments