@@ -73,6 +73,7 @@ static const struct snd_kcontrol_new rt700_controls[] = {
7373
7474struct asoc_sdw_codec_info codec_info_list [] = {
7575 {
76+ .vendor_id = 0x0102 ,
7677 .part_id = 0x5572 ,
7778 .name_prefix = "tac5572" ,
7879 .dais = {
@@ -113,6 +114,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
113114 .dai_num = 3 ,
114115 },
115116 {
117+ .vendor_id = 0x0102 ,
116118 .part_id = 0x5672 ,
117119 .name_prefix = "tac5672" ,
118120 .dais = {
@@ -153,6 +155,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
153155 .dai_num = 3 ,
154156 },
155157 {
158+ .vendor_id = 0x0102 ,
156159 .part_id = 0x5682 ,
157160 .name_prefix = "tac5682" ,
158161 .dais = {
@@ -193,6 +196,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
193196 .dai_num = 3 ,
194197 },
195198 {
199+ .vendor_id = 0x0102 ,
196200 .part_id = 0x2883 ,
197201 .name_prefix = "tas2883" ,
198202 .dais = {
@@ -220,6 +224,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
220224 .dai_num = 2 ,
221225 },
222226 {
227+ .vendor_id = 0x0102 ,
223228 .part_id = 0x0000 , /* TAS2783A */
224229 .name_prefix = "tas2783" ,
225230 .dais = {
@@ -239,6 +244,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
239244 .dai_num = 1 ,
240245 },
241246 {
247+ .vendor_id = 0x025d ,
242248 .part_id = 0x700 ,
243249 .name_prefix = "rt700" ,
244250 .dais = {
@@ -257,6 +263,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
257263 .dai_num = 1 ,
258264 },
259265 {
266+ .vendor_id = 0x025d ,
260267 .part_id = 0x711 ,
261268 .name_prefix = "rt711" ,
262269 .version_id = 3 ,
@@ -278,6 +285,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
278285 .dai_num = 1 ,
279286 },
280287 {
288+ .vendor_id = 0x025d ,
281289 .part_id = 0x711 ,
282290 .name_prefix = "rt711" ,
283291 .version_id = 2 ,
@@ -299,6 +307,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
299307 .dai_num = 1 ,
300308 },
301309 {
310+ .vendor_id = 0x025d ,
302311 .part_id = 0x712 ,
303312 .name_prefix = "rt712" ,
304313 .version_id = 3 ,
@@ -341,6 +350,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
341350 .dai_num = 3 ,
342351 },
343352 {
353+ .vendor_id = 0x025d ,
344354 .part_id = 0x1712 ,
345355 .name_prefix = "rt712-dmic" ,
346356 .version_id = 3 ,
@@ -356,6 +366,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
356366 .dai_num = 1 ,
357367 },
358368 {
369+ .vendor_id = 0x025d ,
359370 .part_id = 0x713 ,
360371 .name_prefix = "rt713" ,
361372 .version_id = 3 ,
@@ -384,6 +395,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
384395 .dai_num = 2 ,
385396 },
386397 {
398+ .vendor_id = 0x025d ,
387399 .part_id = 0x1713 ,
388400 .name_prefix = "rt713-dmic" ,
389401 .version_id = 3 ,
@@ -399,6 +411,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
399411 .dai_num = 1 ,
400412 },
401413 {
414+ .vendor_id = 0x025d ,
402415 .part_id = 0x1308 ,
403416 .name_prefix = "rt1308" ,
404417 .acpi_id = "10EC1308" ,
@@ -422,6 +435,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
422435 .ops = & soc_sdw_rt1308_i2s_ops ,
423436 },
424437 {
438+ .vendor_id = 0x025d ,
425439 .part_id = 0x1316 ,
426440 .name_prefix = "rt1316" ,
427441 .dais = {
@@ -443,6 +457,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
443457 .dai_num = 1 ,
444458 },
445459 {
460+ .vendor_id = 0x025d ,
446461 .part_id = 0x1318 ,
447462 .name_prefix = "rt1318" ,
448463 .dais = {
@@ -464,6 +479,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
464479 .dai_num = 1 ,
465480 },
466481 {
482+ .vendor_id = 0x025d ,
467483 .part_id = 0x1320 ,
468484 .name_prefix = "rt1320" ,
469485 .dais = {
@@ -485,6 +501,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
485501 .dai_num = 1 ,
486502 },
487503 {
504+ .vendor_id = 0x025d ,
488505 .part_id = 0x1321 ,
489506 .name_prefix = "rt1320" ,
490507 .dais = {
@@ -506,6 +523,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
506523 .dai_num = 1 ,
507524 },
508525 {
526+ .vendor_id = 0x025d ,
509527 .part_id = 0x714 ,
510528 .name_prefix = "rt714" ,
511529 .version_id = 3 ,
@@ -522,6 +540,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
522540 .dai_num = 1 ,
523541 },
524542 {
543+ .vendor_id = 0x025d ,
525544 .part_id = 0x715 ,
526545 .name_prefix = "rt715" ,
527546 .version_id = 3 ,
@@ -538,6 +557,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
538557 .dai_num = 1 ,
539558 },
540559 {
560+ .vendor_id = 0x025d ,
541561 .part_id = 0x714 ,
542562 .name_prefix = "rt714" ,
543563 .version_id = 2 ,
@@ -554,6 +574,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
554574 .dai_num = 1 ,
555575 },
556576 {
577+ .vendor_id = 0x025d ,
557578 .part_id = 0x715 ,
558579 .name_prefix = "rt715" ,
559580 .version_id = 2 ,
@@ -570,6 +591,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
570591 .dai_num = 1 ,
571592 },
572593 {
594+ .vendor_id = 0x025d ,
573595 .part_id = 0x721 ,
574596 .name_prefix = "rt721" ,
575597 .version_id = 3 ,
@@ -613,6 +635,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
613635 .dai_num = 3 ,
614636 },
615637 {
638+ .vendor_id = 0x025d ,
616639 .part_id = 0x722 ,
617640 .name_prefix = "rt722" ,
618641 .version_id = 3 ,
@@ -660,6 +683,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
660683 .dai_num = 3 ,
661684 },
662685 {
686+ .vendor_id = 0x019f ,
663687 .part_id = 0x8373 ,
664688 .name_prefix = "Left" ,
665689 .dais = {
@@ -680,6 +704,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
680704 .dai_num = 1 ,
681705 },
682706 {
707+ .vendor_id = 0x019f ,
683708 .part_id = 0x8363 ,
684709 .name_prefix = "Left" ,
685710 .dais = {
@@ -700,6 +725,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
700725 .dai_num = 1 ,
701726 },
702727 {
728+ .vendor_id = 0x025d ,
703729 .part_id = 0x5682 ,
704730 .name_prefix = "rt5682" ,
705731 .dais = {
@@ -718,6 +744,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
718744 .dai_num = 1 ,
719745 },
720746 {
747+ .vendor_id = 0x01fa ,
721748 .part_id = 0x3556 ,
722749 .name_prefix = "AMP" ,
723750 .dais = {
@@ -745,6 +772,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
745772 .dai_num = 2 ,
746773 },
747774 {
775+ .vendor_id = 0x01fa ,
748776 .part_id = 0x3557 ,
749777 .name_prefix = "AMP" ,
750778 .dais = {
@@ -772,6 +800,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
772800 .dai_num = 2 ,
773801 },
774802 {
803+ .vendor_id = 0x01fa ,
775804 .part_id = 0x3563 ,
776805 .name_prefix = "AMP" ,
777806 .dais = {
@@ -799,6 +828,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
799828 .dai_num = 2 ,
800829 },
801830 {
831+ .vendor_id = 0x01fa ,
802832 .part_id = 0x4242 ,
803833 .name_prefix = "cs42l42" ,
804834 .dais = {
@@ -817,6 +847,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
817847 .dai_num = 1 ,
818848 },
819849 {
850+ .vendor_id = 0x01fa ,
820851 .part_id = 0x4243 ,
821852 .name_prefix = "cs42l43" ,
822853 .count_sidecar = asoc_sdw_bridge_cs35l56_count_sidecar ,
@@ -871,6 +902,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
871902 .dai_num = 4 ,
872903 },
873904 {
905+ .vendor_id = 0x01fa ,
874906 .part_id = 0x4245 ,
875907 .name_prefix = "cs42l45" ,
876908 .dais = {
@@ -907,6 +939,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
907939 .aux_num = 1 ,
908940 },
909941 {
942+ .vendor_id = 0x01fa ,
910943 .part_id = 0x4747 ,
911944 .name_prefix = "cs47l47" ,
912945 .dais = {
@@ -943,6 +976,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
943976 .aux_num = 1 ,
944977 },
945978 {
979+ .vendor_id = 0x0105 ,
946980 .part_id = 0xaaaa , /* generic codec mockup */
947981 .name_prefix = "sdw_mockup_mmulti-function" ,
948982 .version_id = 0 ,
@@ -969,6 +1003,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
9691003 .dai_num = 3 ,
9701004 },
9711005 {
1006+ .vendor_id = 0x0105 ,
9721007 .part_id = 0xaa55 , /* headset codec mockup */
9731008 .name_prefix = "sdw_mockup_headset0" ,
9741009 .version_id = 0 ,
@@ -983,6 +1018,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
9831018 .dai_num = 1 ,
9841019 },
9851020 {
1021+ .vendor_id = 0x0105 ,
9861022 .part_id = 0x55aa , /* amplifier mockup */
9871023 .name_prefix = "sdw_mockup_amp1" ,
9881024 .version_id = 0 ,
@@ -997,6 +1033,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
9971033 .dai_num = 1 ,
9981034 },
9991035 {
1036+ .vendor_id = 0x0105 ,
10001037 .part_id = 0x5555 ,
10011038 .name_prefix = "sdw_mockup_mic0" ,
10021039 .version_id = 0 ,
@@ -1021,9 +1058,10 @@ EXPORT_SYMBOL_NS(asoc_sdw_get_codec_info_list_count, "SND_SOC_SDW_UTILS");
10211058
10221059struct asoc_sdw_codec_info * asoc_sdw_find_codec_info_part (const u64 adr )
10231060{
1024- unsigned int part_id , sdw_version ;
1061+ unsigned int vendor_id , part_id , sdw_version ;
10251062 int i ;
10261063
1064+ vendor_id = SDW_MFG_ID (adr );
10271065 part_id = SDW_PART_ID (adr );
10281066 sdw_version = SDW_VERSION (adr );
10291067 for (i = 0 ; i < ARRAY_SIZE (codec_info_list ); i ++ )
@@ -1032,6 +1070,7 @@ struct asoc_sdw_codec_info *asoc_sdw_find_codec_info_part(const u64 adr)
10321070 * version_id is not specified in the codec info.
10331071 */
10341072 if (part_id == codec_info_list [i ].part_id &&
1073+ vendor_id == codec_info_list [i ].vendor_id &&
10351074 (!codec_info_list [i ].version_id ||
10361075 sdw_version == codec_info_list [i ].version_id ))
10371076 return & codec_info_list [i ];
@@ -1046,6 +1085,7 @@ static struct asoc_sdw_codec_info *asoc_sdw_find_codec_info_sdw_id(const struct
10461085
10471086 for (i = 0 ; i < ARRAY_SIZE (codec_info_list ); i ++ )
10481087 if (id -> part_id == codec_info_list [i ].part_id &&
1088+ id -> mfg_id == codec_info_list [i ].vendor_id &&
10491089 (!codec_info_list [i ].version_id ||
10501090 id -> sdw_version == codec_info_list [i ].version_id ))
10511091 return & codec_info_list [i ];
@@ -1150,8 +1190,8 @@ int asoc_sdw_rtd_init(struct snd_soc_pcm_runtime *rtd)
11501190 ret = snd_soc_add_card_controls (card , codec_info -> dais [dai_index ].controls ,
11511191 codec_info -> dais [dai_index ].num_controls );
11521192 if (ret ) {
1153- dev_err (card -> dev , "%#x controls addition failed: %d\n" ,
1154- codec_info -> part_id , ret );
1193+ dev_err (card -> dev , "%#x-%#x controls addition failed: %d\n" ,
1194+ codec_info -> vendor_id , codec_info -> part_id , ret );
11551195 return ret ;
11561196 }
11571197 }
@@ -1160,8 +1200,8 @@ int asoc_sdw_rtd_init(struct snd_soc_pcm_runtime *rtd)
11601200 codec_info -> dais [dai_index ].widgets ,
11611201 codec_info -> dais [dai_index ].num_widgets );
11621202 if (ret ) {
1163- dev_err (card -> dev , "%#x widgets addition failed: %d\n" ,
1164- codec_info -> part_id , ret );
1203+ dev_err (card -> dev , "%#x-%#x widgets addition failed: %d\n" ,
1204+ codec_info -> vendor_id , codec_info -> part_id , ret );
11651205 return ret ;
11661206 }
11671207 }
0 commit comments