struct asoc_sdw_codec_info codec_info_list[] = {
{
+ .vendor_id = 0x0102,
.part_id = 0x0000, /* TAS2783A */
.name_prefix = "tas2783",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x700,
.name_prefix = "rt700",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x711,
.name_prefix = "rt711",
.version_id = 3,
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x711,
.name_prefix = "rt711",
.version_id = 2,
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x712,
.name_prefix = "rt712",
.version_id = 3,
.dai_num = 3,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x1712,
.name_prefix = "rt712-dmic",
.version_id = 3,
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x713,
.name_prefix = "rt713",
.version_id = 3,
.dai_num = 2,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x1713,
.name_prefix = "rt713-dmic",
.version_id = 3,
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x1308,
.name_prefix = "rt1308",
.acpi_id = "10EC1308",
.ops = &soc_sdw_rt1308_i2s_ops,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x1316,
.name_prefix = "rt1316",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x1318,
.name_prefix = "rt1318",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x1320,
.name_prefix = "rt1320",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x1321,
.name_prefix = "rt1320",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x714,
.name_prefix = "rt714",
.version_id = 3,
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x715,
.name_prefix = "rt715",
.version_id = 3,
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x714,
.name_prefix = "rt714",
.version_id = 2,
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x715,
.name_prefix = "rt715",
.version_id = 2,
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x721,
.name_prefix = "rt721",
.version_id = 3,
.dai_num = 3,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x722,
.name_prefix = "rt722",
.version_id = 3,
.dai_num = 3,
},
{
+ .vendor_id = 0x019f,
.part_id = 0x8373,
.name_prefix = "Left",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x019f,
.part_id = 0x8363,
.name_prefix = "Left",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x025d,
.part_id = 0x5682,
.name_prefix = "rt5682",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x3556,
.name_prefix = "AMP",
.dais = {
.dai_num = 2,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x3557,
.name_prefix = "AMP",
.dais = {
.dai_num = 2,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x3563,
.name_prefix = "AMP",
.dais = {
.dai_num = 2,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x4242,
.name_prefix = "cs42l42",
.dais = {
.dai_num = 1,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x4243,
.name_prefix = "cs42l43",
.count_sidecar = asoc_sdw_bridge_cs35l56_count_sidecar,
.dai_num = 4,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x2A3B,
.name_prefix = "cs42l43",
.count_sidecar = asoc_sdw_bridge_cs35l56_count_sidecar,
.dai_num = 4,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x4245,
.name_prefix = "cs42l45",
.dais = {
.aux_num = 1,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x4249,
.name_prefix = "cs42l45", /* Use same user-space as cs42l45 */
.dais = {
.aux_num = 1,
},
{
+ .vendor_id = 0x01fa,
.part_id = 0x4747,
.name_prefix = "cs47l47",
.dais = {
.aux_num = 1,
},
{
+ .vendor_id = 0x0105,
.part_id = 0xaaaa, /* generic codec mockup */
.name_prefix = "sdw_mockup_mmulti-function",
.version_id = 0,
.dai_num = 3,
},
{
+ .vendor_id = 0x0105,
.part_id = 0xaa55, /* headset codec mockup */
.name_prefix = "sdw_mockup_headset0",
.version_id = 0,
.dai_num = 1,
},
{
+ .vendor_id = 0x0105,
.part_id = 0x55aa, /* amplifier mockup */
.name_prefix = "sdw_mockup_amp1",
.version_id = 0,
.dai_num = 1,
},
{
+ .vendor_id = 0x0105,
.part_id = 0x5555,
.name_prefix = "sdw_mockup_mic0",
.version_id = 0,
struct asoc_sdw_codec_info *asoc_sdw_find_codec_info_part(const u64 adr)
{
- unsigned int part_id, sdw_version;
+ unsigned int vendor_id, part_id, sdw_version;
int i;
+ vendor_id = SDW_MFG_ID(adr);
part_id = SDW_PART_ID(adr);
sdw_version = SDW_VERSION(adr);
for (i = 0; i < ARRAY_SIZE(codec_info_list); i++)
* version_id is not specified in the codec info.
*/
if (part_id == codec_info_list[i].part_id &&
+ vendor_id == codec_info_list[i].vendor_id &&
(!codec_info_list[i].version_id ||
sdw_version == codec_info_list[i].version_id))
return &codec_info_list[i];
for (i = 0; i < ARRAY_SIZE(codec_info_list); i++)
if (id->part_id == codec_info_list[i].part_id &&
+ id->mfg_id == codec_info_list[i].vendor_id &&
(!codec_info_list[i].version_id ||
id->sdw_version == codec_info_list[i].version_id))
return &codec_info_list[i];
ret = snd_soc_add_card_controls(card, codec_info->dais[dai_index].controls,
codec_info->dais[dai_index].num_controls);
if (ret) {
- dev_err(card->dev, "%#x controls addition failed: %d\n",
- codec_info->part_id, ret);
+ dev_err(card->dev, "%#x-%#x controls addition failed: %d\n",
+ codec_info->vendor_id, codec_info->part_id, ret);
return ret;
}
}
codec_info->dais[dai_index].widgets,
codec_info->dais[dai_index].num_widgets);
if (ret) {
- dev_err(card->dev, "%#x widgets addition failed: %d\n",
- codec_info->part_id, ret);
+ dev_err(card->dev, "%#x-%#x widgets addition failed: %d\n",
+ codec_info->vendor_id, codec_info->part_id, ret);
return ret;
}
}