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: add rt722 and rt1320 support

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

This series add rt722 and rt1320 support for a new Dell SKU.

+73
+8
sound/soc/intel/boards/sof_sdw.c
··· 639 639 }, 640 640 .driver_data = (void *)(SOC_SDW_CODEC_SPKR), 641 641 }, 642 + { 643 + .callback = sof_sdw_quirk_cb, 644 + .matches = { 645 + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), 646 + DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0CF0") 647 + }, 648 + .driver_data = (void *)(SOC_SDW_CODEC_SPKR), 649 + }, 642 650 /* Pantherlake devices*/ 643 651 { 644 652 .callback = sof_sdw_quirk_cb,
+63
sound/soc/intel/common/soc-acpi-intel-arl-match.c
··· 44 44 .group_id = 1, 45 45 }; 46 46 47 + /* 48 + * RT722 is a multi-function codec, three endpoints are created for 49 + * its headset, amp and dmic functions. 50 + */ 51 + static const struct snd_soc_acpi_endpoint rt722_endpoints[] = { 52 + { 53 + .num = 0, 54 + .aggregated = 0, 55 + .group_position = 0, 56 + .group_id = 0, 57 + }, 58 + { 59 + .num = 1, 60 + .aggregated = 0, 61 + .group_position = 0, 62 + .group_id = 0, 63 + }, 64 + { 65 + .num = 2, 66 + .aggregated = 0, 67 + .group_position = 0, 68 + .group_id = 0, 69 + }, 70 + }; 71 + 47 72 static const struct snd_soc_acpi_adr_device cs35l56_2_lr_adr[] = { 48 73 { 49 74 .adr = 0x00023001FA355601ull, ··· 210 185 } 211 186 }; 212 187 188 + static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = { 189 + { 190 + .adr = 0x000030025D072201ull, 191 + .num_endpoints = ARRAY_SIZE(rt722_endpoints), 192 + .endpoints = rt722_endpoints, 193 + .name_prefix = "rt722" 194 + } 195 + }; 196 + 197 + static const struct snd_soc_acpi_adr_device rt1320_2_single_adr[] = { 198 + { 199 + .adr = 0x000230025D132001ull, 200 + .num_endpoints = 1, 201 + .endpoints = &single_endpoint, 202 + .name_prefix = "rt1320-1" 203 + } 204 + }; 205 + 213 206 static const struct snd_soc_acpi_link_adr arl_cs42l43_l0[] = { 214 207 { 215 208 .mask = BIT(0), ··· 330 287 {} 331 288 }; 332 289 290 + static const struct snd_soc_acpi_link_adr arl_rt722_l0_rt1320_l2[] = { 291 + { 292 + .mask = BIT(0), 293 + .num_adr = ARRAY_SIZE(rt722_0_single_adr), 294 + .adr_d = rt722_0_single_adr, 295 + }, 296 + { 297 + .mask = BIT(2), 298 + .num_adr = ARRAY_SIZE(rt1320_2_single_adr), 299 + .adr_d = rt1320_2_single_adr, 300 + }, 301 + {} 302 + }; 303 + 333 304 static const struct snd_soc_acpi_codecs arl_essx_83x6 = { 334 305 .num_codecs = 3, 335 306 .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"}, ··· 441 384 .links = arl_sdca_rvp, 442 385 .drv_name = "sof_sdw", 443 386 .sof_tplg_filename = "sof-arl-rt711-l0.tplg", 387 + }, 388 + { 389 + .link_mask = BIT(0) | BIT(2), 390 + .links = arl_rt722_l0_rt1320_l2, 391 + .drv_name = "sof_sdw", 392 + .sof_tplg_filename = "sof-arl-rt722-l0_rt1320-l2.tplg", 444 393 }, 445 394 {}, 446 395 };
+2
sound/soc/sdw_utils/soc_sdw_utils.c
··· 418 418 .num_controls = ARRAY_SIZE(generic_spk_controls), 419 419 .widgets = generic_spk_widgets, 420 420 .num_widgets = ARRAY_SIZE(generic_spk_widgets), 421 + .quirk = SOC_SDW_CODEC_SPKR, 422 + .quirk_exclude = true, 421 423 }, 422 424 { 423 425 .direction = {false, true},