Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: Intel: machine driver updates for 6.19

Merge series from Bard Liao <yung-chuan.liao@linux.intel.com>:

Add supports for new audio configurations on Intel platforms.

+130 -8
+51 -8
sound/soc/intel/boards/sof_sdw.c
··· 231 231 RT711_JD1), 232 232 }, 233 233 { 234 + /* 235 + * Avell B.ON (OEM rebrand of NUC15 'Bishop County' LAPBC510 and 236 + * LAPBC710) 237 + */ 238 + .callback = sof_sdw_quirk_cb, 239 + .matches = { 240 + DMI_MATCH(DMI_SYS_VENDOR, "Avell High Performance"), 241 + DMI_MATCH(DMI_PRODUCT_NAME, "B.ON"), 242 + }, 243 + .driver_data = (void *)(SOF_SDW_TGL_HDMI | 244 + SOC_SDW_PCH_DMIC | 245 + RT711_JD1), 246 + }, 247 + { 234 248 /* NUC15 'Rooks County' LAPRC510 and LAPRC710 skews */ 235 249 .callback = sof_sdw_quirk_cb, 236 250 .matches = { ··· 775 761 .callback = sof_sdw_quirk_cb, 776 762 .matches = { 777 763 DMI_MATCH(DMI_SYS_VENDOR, "Google"), 764 + DMI_MATCH(DMI_PRODUCT_NAME, "Lapis"), 765 + }, 766 + .driver_data = (void *)(SOC_SDW_CODEC_SPKR | 767 + SOC_SDW_PCH_DMIC | 768 + SOF_BT_OFFLOAD_SSP(2) | 769 + SOF_SSP_BT_OFFLOAD_PRESENT), 770 + }, 771 + { 772 + .callback = sof_sdw_quirk_cb, 773 + .matches = { 774 + DMI_MATCH(DMI_SYS_VENDOR, "Google"), 775 + DMI_MATCH(DMI_PRODUCT_NAME, "Francka"), 776 + }, 777 + .driver_data = (void *)(SOC_SDW_CODEC_SPKR | 778 + SOC_SDW_PCH_DMIC | 779 + SOF_BT_OFFLOAD_SSP(2) | 780 + SOF_SSP_BT_OFFLOAD_PRESENT), 781 + }, 782 + { 783 + .callback = sof_sdw_quirk_cb, 784 + .matches = { 785 + DMI_MATCH(DMI_SYS_VENDOR, "Google"), 778 786 DMI_MATCH(DMI_PRODUCT_FAMILY, "Google_Fatcat"), 779 787 }, 780 788 .driver_data = (void *)(SOC_SDW_PCH_DMIC | ··· 1149 1113 struct snd_soc_dai_link **dai_links, int *be_id) 1150 1114 { 1151 1115 struct device *dev = card->dev; 1152 - int port = (sof_sdw_quirk & SOF_BT_OFFLOAD_SSP_MASK) >> 1153 - SOF_BT_OFFLOAD_SSP_SHIFT; 1154 - char *name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-BT", port); 1155 - char *cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", port); 1116 + struct snd_soc_acpi_mach *mach = dev_get_platdata(dev); 1117 + char *cpu_dai_name; 1118 + char *name; 1119 + int port; 1120 + int ret; 1121 + 1122 + if (sof_sdw_quirk & SOF_SSP_BT_OFFLOAD_PRESENT) 1123 + port = (sof_sdw_quirk & SOF_BT_OFFLOAD_SSP_MASK) >> SOF_BT_OFFLOAD_SSP_SHIFT; 1124 + else 1125 + port = fls(mach->mach_params.bt_link_mask) - 1; 1126 + 1127 + name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-BT", port); 1128 + cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", port); 1156 1129 if (!name || !cpu_dai_name) 1157 1130 return -ENOMEM; 1158 - 1159 - int ret; 1160 1131 1161 1132 ret = asoc_sdw_init_simple_dai_link(dev, *dai_links, be_id, name, 1162 1133 1, 1, cpu_dai_name, "dummy", ··· 1261 1218 mach_params->dmic_num = DMIC_DEFAULT_CHANNELS; 1262 1219 } 1263 1220 1264 - if (sof_sdw_quirk & SOF_SSP_BT_OFFLOAD_PRESENT) 1221 + if (sof_sdw_quirk & SOF_SSP_BT_OFFLOAD_PRESENT || mach_params->bt_link_mask) 1265 1222 bt_num = 1; 1266 1223 1267 1224 dev_dbg(dev, "DAI link numbers: sdw %d, ssp %d, dmic %d, hdmi %d, bt: %d\n", ··· 1316 1273 goto err_end; 1317 1274 1318 1275 /* BT */ 1319 - if (sof_sdw_quirk & SOF_SSP_BT_OFFLOAD_PRESENT) { 1276 + if (bt_num) { 1320 1277 ret = create_bt_dailinks(card, &dai_links, &be_id); 1321 1278 if (ret) 1322 1279 goto err_end;
+79
sound/soc/intel/common/soc-acpi-intel-ptl-match.c
··· 236 236 } 237 237 }; 238 238 239 + static const struct snd_soc_acpi_adr_device cs42l43_3_agg_adr[] = { 240 + { 241 + .adr = 0x00033001FA424301ull, 242 + .num_endpoints = ARRAY_SIZE(cs42l43_amp_spkagg_endpoints), 243 + .endpoints = cs42l43_amp_spkagg_endpoints, 244 + .name_prefix = "cs42l43" 245 + } 246 + }; 247 + 248 + static const struct snd_soc_acpi_adr_device cs35l56_2_lr_adr[] = { 249 + { 250 + .adr = 0x00023001fa355601ull, 251 + .num_endpoints = 1, 252 + .endpoints = &spk_l_endpoint, 253 + .name_prefix = "AMP1" 254 + }, 255 + { 256 + .adr = 0x00023101fa355601ull, 257 + .num_endpoints = 1, 258 + .endpoints = &spk_r_endpoint, 259 + .name_prefix = "AMP2" 260 + } 261 + }; 262 + 239 263 static const struct snd_soc_acpi_adr_device cs35l56_1_3amp_adr[] = { 240 264 { 241 265 .adr = 0x00013001fa355601ull, ··· 446 422 } 447 423 }; 448 424 425 + static const struct snd_soc_acpi_adr_device rt1320_2_group2_l_adr[] = { 426 + { 427 + .adr = 0x000230025D132001ull, 428 + .num_endpoints = 1, 429 + .endpoints = &spk_l_endpoint, 430 + .name_prefix = "rt1320-1" 431 + } 432 + }; 433 + 449 434 static const struct snd_soc_acpi_adr_device rt1320_3_group2_adr[] = { 450 435 { 451 436 .adr = 0x000330025D132001ull, ··· 462 429 .endpoints = &spk_r_endpoint, 463 430 .name_prefix = "rt1320-2" 464 431 } 432 + }; 433 + 434 + static const struct snd_soc_acpi_link_adr ptl_cs42l43_agg_l3_cs35l56_l2[] = { 435 + { 436 + .mask = BIT(3), 437 + .num_adr = ARRAY_SIZE(cs42l43_3_agg_adr), 438 + .adr_d = cs42l43_3_agg_adr, 439 + }, 440 + { 441 + .mask = BIT(2), 442 + .num_adr = ARRAY_SIZE(cs35l56_2_lr_adr), 443 + .adr_d = cs35l56_2_lr_adr, 444 + }, 445 + {} 465 446 }; 466 447 467 448 static const struct snd_soc_acpi_link_adr ptl_cs42l43_l2_cs35l56x6_l13[] = { ··· 529 482 .mask = BIT(3), 530 483 .num_adr = ARRAY_SIZE(rt722_3_single_adr), 531 484 .adr_d = rt722_3_single_adr, 485 + }, 486 + {} 487 + }; 488 + 489 + static const struct snd_soc_acpi_link_adr ptl_rt722_l0_rt1320_l23[] = { 490 + { 491 + .mask = BIT(0), 492 + .num_adr = ARRAY_SIZE(rt722_0_single_adr), 493 + .adr_d = rt722_0_single_adr, 494 + }, 495 + { 496 + .mask = BIT(2), 497 + .num_adr = ARRAY_SIZE(rt1320_2_group2_l_adr), 498 + .adr_d = rt1320_2_group2_l_adr, 499 + }, 500 + { 501 + .mask = BIT(3), 502 + .num_adr = ARRAY_SIZE(rt1320_3_group2_adr), 503 + .adr_d = rt1320_3_group2_adr, 532 504 }, 533 505 {} 534 506 }; ··· 691 625 .sof_tplg_filename = "sof-ptl-cs42l43-l2-cs35l56x6-l13.tplg", 692 626 }, 693 627 { 628 + .link_mask = BIT(0) | BIT(2) | BIT(3), 629 + .links = ptl_rt722_l0_rt1320_l23, 630 + .drv_name = "sof_sdw", 631 + .sof_tplg_filename = "sof-ptl-rt722-l0-rt1320-l23.tplg", 632 + .get_function_tplg_files = sof_sdw_get_tplg_files, 633 + }, 634 + { 694 635 .link_mask = BIT(1) | BIT(2), 695 636 .links = ptl_sdw_rt712_vb_l2_rt1320_l1, 696 637 .drv_name = "sof_sdw", ··· 712 639 .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, 713 640 .sof_tplg_filename = "sof-ptl-rt712-l3-rt1320-l2.tplg", 714 641 .get_function_tplg_files = sof_sdw_get_tplg_files, 642 + }, 643 + { 644 + .link_mask = BIT(2) | BIT(3), 645 + .links = ptl_cs42l43_agg_l3_cs35l56_l2, 646 + .drv_name = "sof_sdw", 647 + .sof_tplg_filename = "sof-ptl-cs42l43-agg-l3-cs35l56-l2.tplg", 715 648 }, 716 649 { 717 650 .link_mask = BIT(0),