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.

Merge tag 'sound-6.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"Here are device-specific small fixes, including HD-audio, USB-audio
and ASoC Intel quirks, as well as ASoC fsl, Cirrus codec and the
legacy AD driver fixes.

All look safe and easy"

* tag 'sound-6.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda/realtek: Enable headset Mic on Positivo K116J
ALSA: hda/tas2781: Fix calibration data parser issue
ALSA: ad1816a: Fix potential NULL pointer deref in snd_card_ad1816a_pnp()
ASoC: cs35l56: probe() should fail if the device ID is not recognized
ALSA: hda/realtek: Add quirk for ASUS ExpertBook B9403CVAR
ASoC: Intel: sof_sdw: Add quirks for Lenovo P1 and P16
ALSA: usb-audio: Improve filtering of sample rates on Focusrite devices
ASoC: Intel: soc-acpi: arl: Correct order of cs42l43 matches
MAINTAINERS: update Qualcomm audio codec drivers list
ASoC: fsl_sai: Force a software reset when starting in consumer mode
ASoC: Intel: SND_SOC_INTEL_SOF_BOARD_HELPERS select SND_SOC_ACPI_INTEL_MATCH
ASoC: fsl_asrc: use internal measured ratio for non-ideal ratio mode
ALSA: hda/realtek - Add mute LED support for HP Victus 15-fb2xxx
ALSA: hda: Add missing NVIDIA HDA codec IDs

+65 -42
+5 -11
MAINTAINERS
··· 20155 20155 F: Documentation/devicetree/bindings/soc/qcom/qcom,apr* 20156 20156 F: Documentation/devicetree/bindings/sound/qcom,* 20157 20157 F: drivers/soc/qcom/apr.c 20158 - F: include/dt-bindings/sound/qcom,wcd9335.h 20159 - F: include/dt-bindings/sound/qcom,wcd934x.h 20160 - F: sound/soc/codecs/lpass-rx-macro.* 20161 - F: sound/soc/codecs/lpass-tx-macro.* 20162 - F: sound/soc/codecs/lpass-va-macro.c 20163 - F: sound/soc/codecs/lpass-wsa-macro.* 20158 + F: drivers/soundwire/qcom.c 20159 + F: include/dt-bindings/sound/qcom,wcd93* 20160 + F: sound/soc/codecs/lpass-*.* 20164 20161 F: sound/soc/codecs/msm8916-wcd-analog.c 20165 20162 F: sound/soc/codecs/msm8916-wcd-digital.c 20166 20163 F: sound/soc/codecs/wcd-clsh-v2.* 20167 20164 F: sound/soc/codecs/wcd-mbhc-v2.* 20168 - F: sound/soc/codecs/wcd9335.* 20169 - F: sound/soc/codecs/wcd934x.c 20170 - F: sound/soc/codecs/wsa881x.c 20171 - F: sound/soc/codecs/wsa883x.c 20172 - F: sound/soc/codecs/wsa884x.c 20165 + F: sound/soc/codecs/wcd93*.* 20166 + F: sound/soc/codecs/wsa88*.* 20173 20167 F: sound/soc/qcom/ 20174 20168 20175 20169 QCOM EMBEDDED USB DEBUGGER (EUD)
+1 -1
sound/isa/ad1816a/ad1816a.c
··· 98 98 pdev = pnp_request_card_device(card, id->devs[1].id, NULL); 99 99 if (pdev == NULL) { 100 100 mpu_port[dev] = -1; 101 - dev_warn(&pdev->dev, "MPU401 device busy, skipping.\n"); 101 + pr_warn("MPU401 device busy, skipping.\n"); 102 102 return 0; 103 103 } 104 104
+19
sound/pci/hda/patch_hdmi.c
··· 4551 4551 HDA_CODEC_ENTRY(0x10de002f, "Tegra194 HDMI/DP2", patch_tegra_hdmi), 4552 4552 HDA_CODEC_ENTRY(0x10de0030, "Tegra194 HDMI/DP3", patch_tegra_hdmi), 4553 4553 HDA_CODEC_ENTRY(0x10de0031, "Tegra234 HDMI/DP", patch_tegra234_hdmi), 4554 + HDA_CODEC_ENTRY(0x10de0033, "SoC 33 HDMI/DP", patch_tegra234_hdmi), 4554 4555 HDA_CODEC_ENTRY(0x10de0034, "Tegra264 HDMI/DP", patch_tegra234_hdmi), 4556 + HDA_CODEC_ENTRY(0x10de0035, "SoC 35 HDMI/DP", patch_tegra234_hdmi), 4555 4557 HDA_CODEC_ENTRY(0x10de0040, "GPU 40 HDMI/DP", patch_nvhdmi), 4556 4558 HDA_CODEC_ENTRY(0x10de0041, "GPU 41 HDMI/DP", patch_nvhdmi), 4557 4559 HDA_CODEC_ENTRY(0x10de0042, "GPU 42 HDMI/DP", patch_nvhdmi), ··· 4592 4590 HDA_CODEC_ENTRY(0x10de0098, "GPU 98 HDMI/DP", patch_nvhdmi), 4593 4591 HDA_CODEC_ENTRY(0x10de0099, "GPU 99 HDMI/DP", patch_nvhdmi), 4594 4592 HDA_CODEC_ENTRY(0x10de009a, "GPU 9a HDMI/DP", patch_nvhdmi), 4593 + HDA_CODEC_ENTRY(0x10de009b, "GPU 9b HDMI/DP", patch_nvhdmi), 4594 + HDA_CODEC_ENTRY(0x10de009c, "GPU 9c HDMI/DP", patch_nvhdmi), 4595 4595 HDA_CODEC_ENTRY(0x10de009d, "GPU 9d HDMI/DP", patch_nvhdmi), 4596 4596 HDA_CODEC_ENTRY(0x10de009e, "GPU 9e HDMI/DP", patch_nvhdmi), 4597 4597 HDA_CODEC_ENTRY(0x10de009f, "GPU 9f HDMI/DP", patch_nvhdmi), 4598 4598 HDA_CODEC_ENTRY(0x10de00a0, "GPU a0 HDMI/DP", patch_nvhdmi), 4599 + HDA_CODEC_ENTRY(0x10de00a1, "GPU a1 HDMI/DP", patch_nvhdmi), 4599 4600 HDA_CODEC_ENTRY(0x10de00a3, "GPU a3 HDMI/DP", patch_nvhdmi), 4600 4601 HDA_CODEC_ENTRY(0x10de00a4, "GPU a4 HDMI/DP", patch_nvhdmi), 4601 4602 HDA_CODEC_ENTRY(0x10de00a5, "GPU a5 HDMI/DP", patch_nvhdmi), 4602 4603 HDA_CODEC_ENTRY(0x10de00a6, "GPU a6 HDMI/DP", patch_nvhdmi), 4603 4604 HDA_CODEC_ENTRY(0x10de00a7, "GPU a7 HDMI/DP", patch_nvhdmi), 4605 + HDA_CODEC_ENTRY(0x10de00a8, "GPU a8 HDMI/DP", patch_nvhdmi), 4606 + HDA_CODEC_ENTRY(0x10de00a9, "GPU a9 HDMI/DP", patch_nvhdmi), 4607 + HDA_CODEC_ENTRY(0x10de00aa, "GPU aa HDMI/DP", patch_nvhdmi), 4608 + HDA_CODEC_ENTRY(0x10de00ab, "GPU ab HDMI/DP", patch_nvhdmi), 4609 + HDA_CODEC_ENTRY(0x10de00ad, "GPU ad HDMI/DP", patch_nvhdmi), 4610 + HDA_CODEC_ENTRY(0x10de00ae, "GPU ae HDMI/DP", patch_nvhdmi), 4611 + HDA_CODEC_ENTRY(0x10de00af, "GPU af HDMI/DP", patch_nvhdmi), 4612 + HDA_CODEC_ENTRY(0x10de00b0, "GPU b0 HDMI/DP", patch_nvhdmi), 4613 + HDA_CODEC_ENTRY(0x10de00b1, "GPU b1 HDMI/DP", patch_nvhdmi), 4614 + HDA_CODEC_ENTRY(0x10de00c0, "GPU c0 HDMI/DP", patch_nvhdmi), 4615 + HDA_CODEC_ENTRY(0x10de00c1, "GPU c1 HDMI/DP", patch_nvhdmi), 4616 + HDA_CODEC_ENTRY(0x10de00c3, "GPU c3 HDMI/DP", patch_nvhdmi), 4617 + HDA_CODEC_ENTRY(0x10de00c4, "GPU c4 HDMI/DP", patch_nvhdmi), 4618 + HDA_CODEC_ENTRY(0x10de00c5, "GPU c5 HDMI/DP", patch_nvhdmi), 4604 4619 HDA_CODEC_ENTRY(0x10de8001, "MCP73 HDMI", patch_nvhdmi_2ch), 4605 4620 HDA_CODEC_ENTRY(0x10de8067, "MCP67/68 HDMI", patch_nvhdmi_2ch), 4606 4621 HDA_CODEC_ENTRY(0x67663d82, "Arise 82 HDMI/DP", patch_gf_hdmi),
+3
sound/pci/hda/patch_realtek.c
··· 10881 10881 SND_PCI_QUIRK(0x103c, 0x8ce0, "HP SnowWhite", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10882 10882 SND_PCI_QUIRK(0x103c, 0x8cf5, "HP ZBook Studio 16", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED), 10883 10883 SND_PCI_QUIRK(0x103c, 0x8d01, "HP ZBook Power 14 G12", ALC285_FIXUP_HP_GPIO_LED), 10884 + SND_PCI_QUIRK(0x103c, 0x8d07, "HP Victus 15-fb2xxx (MB 8D07)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT), 10884 10885 SND_PCI_QUIRK(0x103c, 0x8d18, "HP EliteStudio 8 AIO", ALC274_FIXUP_HP_AIO_BIND_DACS), 10885 10886 SND_PCI_QUIRK(0x103c, 0x8d84, "HP EliteBook X G1i", ALC285_FIXUP_HP_GPIO_LED), 10886 10887 SND_PCI_QUIRK(0x103c, 0x8d85, "HP EliteBook 14 G12", ALC285_FIXUP_HP_GPIO_LED), ··· 11041 11040 SND_PCI_QUIRK(0x1043, 0x1e63, "ASUS H7606W", ALC285_FIXUP_ASUS_GU605_SPI_SPEAKER2_TO_DAC1), 11042 11041 SND_PCI_QUIRK(0x1043, 0x1e83, "ASUS GA605W", ALC285_FIXUP_ASUS_GU605_SPI_SPEAKER2_TO_DAC1), 11043 11042 SND_PCI_QUIRK(0x1043, 0x1e8e, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA401), 11043 + SND_PCI_QUIRK(0x1043, 0x1e93, "ASUS ExpertBook B9403CVAR", ALC294_FIXUP_ASUS_HPE), 11044 11044 SND_PCI_QUIRK(0x1043, 0x1eb3, "ASUS Ally RCLA72", ALC287_FIXUP_TAS2781_I2C), 11045 11045 SND_PCI_QUIRK(0x1043, 0x1ed3, "ASUS HN7306W", ALC287_FIXUP_CS35L41_I2C_2), 11046 11046 SND_PCI_QUIRK(0x1043, 0x1ee2, "ASUS UM6702RA/RC", ALC287_FIXUP_CS35L41_I2C_2), ··· 11426 11424 SND_PCI_QUIRK(0x2782, 0x0228, "Infinix ZERO BOOK 13", ALC269VB_FIXUP_INFINIX_ZERO_BOOK_13), 11427 11425 SND_PCI_QUIRK(0x2782, 0x0232, "CHUWI CoreBook XPro", ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO), 11428 11426 SND_PCI_QUIRK(0x2782, 0x1407, "Positivo P15X", ALC269_FIXUP_POSITIVO_P15X_HEADSET_MIC), 11427 + SND_PCI_QUIRK(0x2782, 0x1409, "Positivo K116J", ALC269_FIXUP_POSITIVO_P15X_HEADSET_MIC), 11429 11428 SND_PCI_QUIRK(0x2782, 0x1701, "Infinix Y4 Max", ALC269VC_FIXUP_INFINIX_Y4_MAX), 11430 11429 SND_PCI_QUIRK(0x2782, 0x1705, "MEDION E15433", ALC269VC_FIXUP_INFINIX_Y4_MAX), 11431 11430 SND_PCI_QUIRK(0x2782, 0x1707, "Vaio VJFE-ADL", ALC298_FIXUP_SPK_VOLUME),
+5 -3
sound/pci/hda/tas2781_hda.c
··· 44 44 TASDEVICE_REG(0, 0x13, 0x70), 45 45 TASDEVICE_REG(0, 0x18, 0x7c), 46 46 }; 47 - unsigned int crc, oft; 47 + unsigned int crc, oft, node_num; 48 48 unsigned char *buf; 49 49 int i, j, k, l; 50 50 ··· 80 80 dev_err(p->dev, "%s: CRC error\n", __func__); 81 81 return; 82 82 } 83 + node_num = tmp_val[1]; 83 84 84 - for (j = 0, k = 0; j < tmp_val[1]; j++) { 85 + for (j = 0, k = 0; j < node_num; j++) { 85 86 oft = j * 6 + 3; 86 87 if (tmp_val[oft] == TASDEV_UEFI_CALI_REG_ADDR_FLG) { 87 88 for (i = 0; i < TASDEV_CALIB_N; i++) { ··· 100 99 } 101 100 102 101 data[l] = k; 102 + oft++; 103 103 for (i = 0; i < TASDEV_CALIB_N * 4; i++) 104 - data[l + i] = data[4 * oft + i]; 104 + data[l + i + 1] = data[4 * oft + i]; 105 105 k++; 106 106 } 107 107 }
+1 -1
sound/soc/codecs/cs35l56-shared.c
··· 980 980 break; 981 981 default: 982 982 dev_err(cs35l56_base->dev, "Unknown device %x\n", devid); 983 - return ret; 983 + return -ENODEV; 984 984 } 985 985 986 986 cs35l56_base->type = devid & 0xFF;
+2 -1
sound/soc/fsl/fsl_asrc.c
··· 517 517 regmap_update_bits(asrc->regmap, REG_ASRCTR, 518 518 ASRCTR_ATSi_MASK(index), ASRCTR_ATS(index)); 519 519 regmap_update_bits(asrc->regmap, REG_ASRCTR, 520 - ASRCTR_USRi_MASK(index), 0); 520 + ASRCTR_IDRi_MASK(index) | ASRCTR_USRi_MASK(index), 521 + ASRCTR_USR(index)); 521 522 522 523 /* Set the input and output clock sources */ 523 524 regmap_update_bits(asrc->regmap, REG_ASRCSR,
+8 -6
sound/soc/fsl/fsl_sai.c
··· 803 803 * anymore. Add software reset to fix this issue. 804 804 * This is a hardware bug, and will be fix in the 805 805 * next sai version. 806 + * 807 + * In consumer mode, this can happen even after a 808 + * single open/close, especially if both tx and rx 809 + * are running concurrently. 806 810 */ 807 - if (!sai->is_consumer_mode[tx]) { 808 - /* Software Reset */ 809 - regmap_write(sai->regmap, FSL_SAI_xCSR(tx, ofs), FSL_SAI_CSR_SR); 810 - /* Clear SR bit to finish the reset */ 811 - regmap_write(sai->regmap, FSL_SAI_xCSR(tx, ofs), 0); 812 - } 811 + /* Software Reset */ 812 + regmap_write(sai->regmap, FSL_SAI_xCSR(tx, ofs), FSL_SAI_CSR_SR); 813 + /* Clear SR bit to finish the reset */ 814 + regmap_write(sai->regmap, FSL_SAI_xCSR(tx, ofs), 0); 813 815 } 814 816 815 817 static int fsl_sai_trigger(struct snd_pcm_substream *substream, int cmd,
+1
sound/soc/intel/boards/Kconfig
··· 42 42 tristate 43 43 44 44 config SND_SOC_INTEL_SOF_BOARD_HELPERS 45 + select SND_SOC_ACPI_INTEL_MATCH 45 46 tristate 46 47 47 48 if SND_SOC_INTEL_CATPT
+3
sound/soc/intel/boards/sof_sdw.c
··· 783 783 static const struct snd_pci_quirk sof_sdw_ssid_quirk_table[] = { 784 784 SND_PCI_QUIRK(0x1043, 0x1e13, "ASUS Zenbook S14", SOC_SDW_CODEC_MIC), 785 785 SND_PCI_QUIRK(0x1043, 0x1f43, "ASUS Zenbook S16", SOC_SDW_CODEC_MIC), 786 + SND_PCI_QUIRK(0x17aa, 0x2347, "Lenovo P16", SOC_SDW_CODEC_MIC), 787 + SND_PCI_QUIRK(0x17aa, 0x2348, "Lenovo P16", SOC_SDW_CODEC_MIC), 788 + SND_PCI_QUIRK(0x17aa, 0x2349, "Lenovo P1", SOC_SDW_CODEC_MIC), 786 789 {} 787 790 }; 788 791
+7 -7
sound/soc/intel/common/soc-acpi-intel-arl-match.c
··· 468 468 .get_function_tplg_files = sof_sdw_get_tplg_files, 469 469 }, 470 470 { 471 - .link_mask = BIT(2), 472 - .links = arl_cs42l43_l2, 473 - .drv_name = "sof_sdw", 474 - .sof_tplg_filename = "sof-arl-cs42l43-l2.tplg", 475 - .get_function_tplg_files = sof_sdw_get_tplg_files, 476 - }, 477 - { 478 471 .link_mask = BIT(2) | BIT(3), 479 472 .links = arl_cs42l43_l2_cs35l56_l3, 480 473 .drv_name = "sof_sdw", 481 474 .sof_tplg_filename = "sof-arl-cs42l43-l2-cs35l56-l3.tplg", 475 + .get_function_tplg_files = sof_sdw_get_tplg_files, 476 + }, 477 + { 478 + .link_mask = BIT(2), 479 + .links = arl_cs42l43_l2, 480 + .drv_name = "sof_sdw", 481 + .sof_tplg_filename = "sof-arl-cs42l43-l2.tplg", 482 482 .get_function_tplg_files = sof_sdw_get_tplg_files, 483 483 }, 484 484 {
+10 -12
sound/usb/format.c
··· 310 310 struct audioformat *fp, 311 311 unsigned int rate) 312 312 { 313 - struct usb_interface *iface; 314 313 struct usb_host_interface *alts; 315 314 unsigned char *fmt; 316 315 unsigned int max_rate; 317 316 318 - iface = usb_ifnum_to_if(chip->dev, fp->iface); 319 - if (!iface) 317 + alts = snd_usb_get_host_interface(chip, fp->iface, fp->altsetting); 318 + if (!alts) 320 319 return true; 321 320 322 - alts = &iface->altsetting[fp->altset_idx]; 323 321 fmt = snd_usb_find_csint_desc(alts->extra, alts->extralen, 324 322 NULL, UAC_FORMAT_TYPE); 325 323 if (!fmt) ··· 326 328 if (fmt[0] == 10) { /* bLength */ 327 329 max_rate = combine_quad(&fmt[6]); 328 330 329 - /* Validate max rate */ 330 - if (max_rate != 48000 && 331 - max_rate != 96000 && 332 - max_rate != 192000 && 333 - max_rate != 384000) { 334 - 331 + switch (max_rate) { 332 + case 48000: 333 + return (rate == 44100 || rate == 48000); 334 + case 96000: 335 + return (rate == 88200 || rate == 96000); 336 + case 192000: 337 + return (rate == 176400 || rate == 192000); 338 + default: 335 339 usb_audio_info(chip, 336 340 "%u:%d : unexpected max rate: %u\n", 337 341 fp->iface, fp->altsetting, max_rate); 338 342 339 343 return true; 340 344 } 341 - 342 - return rate <= max_rate; 343 345 } 344 346 345 347 return true;