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: soc-acpi-intel-lnl-match: add rt712_vb + rt1320 support

Realtek Gen6 AIOC supports rt712_vb on SoundWire link 2 and rt1320 on
SoundWire link 1.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20241113064418.162592-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Bard Liao and committed by
Mark Brown
a5936046 ba888450

+65
+65
sound/soc/intel/common/soc-acpi-intel-lnl-match.c
··· 8 8 9 9 #include <sound/soc-acpi.h> 10 10 #include <sound/soc-acpi-intel-match.h> 11 + #include "soc-acpi-intel-sdca-quirks.h" 11 12 #include "soc-acpi-intel-sdw-mockup-match.h" 12 13 13 14 struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_machines[] = { ··· 83 82 .group_position = 0, 84 83 .group_id = 0, 85 84 }, 85 + { 86 + .num = 2, 87 + .aggregated = 0, 88 + .group_position = 0, 89 + .group_id = 0, 90 + }, 91 + }; 92 + 93 + static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints_endpoints[] = { 94 + /* Jack Endpoint */ 95 + { 96 + .num = 0, 97 + .aggregated = 0, 98 + .group_position = 0, 99 + .group_id = 0, 100 + }, 101 + /* Amp Endpoint, work as spk_l_endpoint */ 102 + { 103 + .num = 1, 104 + .aggregated = 1, 105 + .group_position = 0, 106 + .group_id = 1, 107 + }, 108 + /* DMIC Endpoint */ 86 109 { 87 110 .num = 2, 88 111 .aggregated = 0, ··· 223 198 } 224 199 }; 225 200 201 + static const struct snd_soc_acpi_adr_device rt712_vb_2_group1_adr[] = { 202 + { 203 + .adr = 0x000230025D071201ull, 204 + .num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints_endpoints), 205 + .endpoints = jack_amp_g1_dmic_endpoints_endpoints, 206 + .name_prefix = "rt712" 207 + } 208 + }; 209 + 226 210 static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = { 227 211 { 228 212 .adr = 0x000030025d072201ull, ··· 283 249 .num_endpoints = 1, 284 250 .endpoints = &spk_r_endpoint, 285 251 .name_prefix = "rt1318-2" 252 + } 253 + }; 254 + 255 + static const struct snd_soc_acpi_adr_device rt1320_1_group1_adr[] = { 256 + { 257 + .adr = 0x000130025D132001ull, 258 + .num_endpoints = 1, 259 + .endpoints = &spk_r_endpoint, 260 + .name_prefix = "rt1320-1" 286 261 } 287 262 }; 288 263 ··· 453 410 {} 454 411 }; 455 412 413 + static const struct snd_soc_acpi_link_adr lnl_sdw_rt712_vb_l2_rt1320_l1[] = { 414 + { 415 + .mask = BIT(2), 416 + .num_adr = ARRAY_SIZE(rt712_vb_2_group1_adr), 417 + .adr_d = rt712_vb_2_group1_adr, 418 + }, 419 + { 420 + .mask = BIT(1), 421 + .num_adr = ARRAY_SIZE(rt1320_1_group1_adr), 422 + .adr_d = rt1320_1_group1_adr, 423 + }, 424 + {} 425 + }; 426 + 427 + /* this table is used when there is no I2S codec present */ 456 428 /* this table is used when there is no I2S codec present */ 457 429 struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = { 458 430 /* mockup tests need to be first */ ··· 542 484 .links = lnl_sdw_rt713_l0_rt1318_l1, 543 485 .drv_name = "sof_sdw", 544 486 .sof_tplg_filename = "sof-lnl-rt713-l0-rt1318-l1.tplg" 487 + }, 488 + { 489 + .link_mask = BIT(1) | BIT(2), 490 + .links = lnl_sdw_rt712_vb_l2_rt1320_l1, 491 + .drv_name = "sof_sdw", 492 + .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, 493 + .sof_tplg_filename = "sof-lnl-rt712-l2-rt1320-l1.tplg" 545 494 }, 546 495 {}, 547 496 };