@@ -1251,7 +1251,8 @@ int asoc_sdw_init_simple_dai_link(struct device *dev, struct snd_soc_dai_link *d
12511251}
12521252EXPORT_SYMBOL_NS (asoc_sdw_init_simple_dai_link , "SND_SOC_SDW_UTILS" );
12531253
1254- int asoc_sdw_count_sdw_endpoints (struct snd_soc_card * card , int * num_devs , int * num_ends )
1254+ int asoc_sdw_count_sdw_endpoints (struct snd_soc_card * card ,
1255+ int * num_devs , int * num_ends , int * num_aux )
12551256{
12561257 struct device * dev = card -> dev ;
12571258 struct snd_soc_acpi_mach * mach = dev_get_platdata (dev );
@@ -1262,8 +1263,18 @@ int asoc_sdw_count_sdw_endpoints(struct snd_soc_card *card, int *num_devs, int *
12621263 for (adr_link = mach_params -> links ; adr_link -> num_adr ; adr_link ++ ) {
12631264 * num_devs += adr_link -> num_adr ;
12641265
1265- for (i = 0 ; i < adr_link -> num_adr ; i ++ )
1266- * num_ends += adr_link -> adr_d [i ].num_endpoints ;
1266+ for (i = 0 ; i < adr_link -> num_adr ; i ++ ) {
1267+ const struct snd_soc_acpi_adr_device * adr_dev = & adr_link -> adr_d [i ];
1268+ struct asoc_sdw_codec_info * codec_info ;
1269+
1270+ * num_ends += adr_dev -> num_endpoints ;
1271+
1272+ codec_info = asoc_sdw_find_codec_info_part (adr_dev -> adr );
1273+ if (!codec_info )
1274+ return - EINVAL ;
1275+
1276+ * num_aux += codec_info -> aux_num ;
1277+ }
12671278 }
12681279
12691280 dev_dbg (dev , "Found %d devices with %d endpoints\n" , * num_devs , * num_ends );
@@ -1393,6 +1404,7 @@ static int is_sdca_endpoint_present(struct device *dev,
13931404}
13941405
13951406int asoc_sdw_parse_sdw_endpoints (struct snd_soc_card * card ,
1407+ struct snd_soc_aux_dev * soc_aux ,
13961408 struct asoc_sdw_dailink * soc_dais ,
13971409 struct asoc_sdw_endpoint * soc_ends ,
13981410 int * num_devs )
@@ -1432,6 +1444,11 @@ int asoc_sdw_parse_sdw_endpoints(struct snd_soc_card *card,
14321444 if (!codec_info )
14331445 return - EINVAL ;
14341446
1447+ for (j = 0 ; j < codec_info -> aux_num ; j ++ ) {
1448+ soc_aux -> dlc .name = codec_info -> auxs [j ].codec_name ;
1449+ soc_aux ++ ;
1450+ }
1451+
14351452 ctx -> ignore_internal_dmic |= codec_info -> ignore_internal_dmic ;
14361453
14371454 if (codec_info -> count_sidecar && codec_info -> add_sidecar ) {
0 commit comments