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.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"Still more changes floating than wished at this late stage, but all
are small device-specific fixes, and look less troublesome.

Including a few ASoC quirk / ID additoins, a series of ASoC STM fixes,
HD-audio conexant codec regression fix, and other various quirks and
device-specific fixes"

* tag 'sound-6.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ASoC: SOF: sof-client-probes-ipc4: Set param_size extension bits
ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div()
ASoC: stm: Prevent potential division by zero in stm32_sai_mclk_round_rate()
ASoC: amd: yc: Support dmic on another model of Lenovo Thinkpad E14 Gen 6
ASoC: SOF: amd: Fix for incorrect DMA ch status register offset
ASoC: amd: yc: fix internal mic on Xiaomi Book Pro 14 2022
ASoC: stm32: spdifrx: fix dma channel release in stm32_spdifrx_remove
MAINTAINERS: Generic Sound Card section
ALSA: usb-audio: Add quirk for HP 320 FHD Webcam
ASoC: tas2781: Add new driver version for tas2563 & tas2781 qfn chip
ALSA: firewire-lib: fix return value on fail in amdtp_tscm_init()
ALSA: ump: Don't enumeration invalid groups for legacy rawmidi
Revert "ALSA: hda/conexant: Mute speakers at suspend / shutdown"

+43 -9
+9
MAINTAINERS
··· 21617 21617 W: https://github.com/thesofproject/linux/ 21618 21618 F: sound/soc/sof/ 21619 21619 21620 + SOUND - GENERIC SOUND CARD (Simple-Audio-Card, Audio-Graph-Card) 21621 + M: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 21622 + S: Supported 21623 + L: linux-sound@vger.kernel.org 21624 + F: sound/soc/generic/ 21625 + F: include/sound/simple_card* 21626 + F: Documentation/devicetree/bindings/sound/simple-card.yaml 21627 + F: Documentation/devicetree/bindings/sound/audio-graph*.yaml 21628 + 21620 21629 SOUNDWIRE SUBSYSTEM 21621 21630 M: Vinod Koul <vkoul@kernel.org> 21622 21631 M: Bard Liao <yung-chuan.liao@linux.intel.com>
+1 -1
sound/core/ump.c
··· 1233 1233 1234 1234 num = 0; 1235 1235 for (i = 0; i < SNDRV_UMP_MAX_GROUPS; i++) 1236 - if (group_maps & (1U << i)) 1236 + if ((group_maps & (1U << i)) && ump->groups[i].valid) 1237 1237 ump->legacy_mapping[num++] = i; 1238 1238 1239 1239 return num;
+1 -1
sound/firewire/tascam/amdtp-tascam.c
··· 238 238 err = amdtp_stream_init(s, unit, dir, flags, fmt, 239 239 process_ctx_payloads, sizeof(struct amdtp_tscm)); 240 240 if (err < 0) 241 - return 0; 241 + return err; 242 242 243 243 if (dir == AMDTP_OUT_STREAM) { 244 244 // Use fixed value for FDF field.
-2
sound/pci/hda/patch_conexant.c
··· 205 205 { 206 206 struct conexant_spec *spec = codec->spec; 207 207 208 - snd_hda_gen_shutup_speakers(codec); 209 - 210 208 /* Turn the problematic codec into D3 to avoid spurious noises 211 209 from the internal speaker during (and after) reboot */ 212 210 cx_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, false);
+14
sound/soc/amd/yc/acp6x-mach.c
··· 231 231 .driver_data = &acp6x_card, 232 232 .matches = { 233 233 DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 234 + DMI_MATCH(DMI_PRODUCT_NAME, "21M4"), 235 + } 236 + }, 237 + { 238 + .driver_data = &acp6x_card, 239 + .matches = { 240 + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 234 241 DMI_MATCH(DMI_PRODUCT_NAME, "21M5"), 235 242 } 236 243 }, ··· 400 393 .matches = { 401 394 DMI_MATCH(DMI_BOARD_VENDOR, "TIMI"), 402 395 DMI_MATCH(DMI_PRODUCT_NAME, "Redmi Book Pro 15 2022"), 396 + } 397 + }, 398 + { 399 + .driver_data = &acp6x_card, 400 + .matches = { 401 + DMI_MATCH(DMI_BOARD_VENDOR, "TIMI"), 402 + DMI_MATCH(DMI_PRODUCT_NAME, "Xiaomi Book Pro 14 2022"), 403 403 } 404 404 }, 405 405 {
+1
sound/soc/codecs/tas2781-fmwlib.c
··· 1992 1992 break; 1993 1993 case 0x202: 1994 1994 case 0x400: 1995 + case 0x401: 1995 1996 tas_priv->fw_parse_variable_header = 1996 1997 fw_parse_variable_header_git; 1997 1998 tas_priv->fw_parse_program_data =
+9 -1
sound/soc/sof/amd/acp.c
··· 342 342 { 343 343 struct snd_sof_dev *sdev = adata->dev; 344 344 unsigned int val; 345 + unsigned int acp_dma_ch_sts; 345 346 int ret = 0; 346 347 348 + switch (adata->pci_rev) { 349 + case ACP70_PCI_ID: 350 + acp_dma_ch_sts = ACP70_DMA_CH_STS; 351 + break; 352 + default: 353 + acp_dma_ch_sts = ACP_DMA_CH_STS; 354 + } 347 355 val = snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_DMA_CNTL_0 + ch * sizeof(u32)); 348 356 if (val & ACP_DMA_CH_RUN) { 349 - ret = snd_sof_dsp_read_poll_timeout(sdev, ACP_DSP_BAR, ACP_DMA_CH_STS, val, !val, 357 + ret = snd_sof_dsp_read_poll_timeout(sdev, ACP_DSP_BAR, acp_dma_ch_sts, val, !val, 350 358 ACP_REG_POLL_INTERVAL, 351 359 ACP_DMA_COMPLETE_TIMEOUT_US); 352 360 if (ret < 0)
+1
sound/soc/sof/sof-client-probes-ipc4.c
··· 125 125 msg.primary |= SOF_IPC4_MSG_TARGET(SOF_IPC4_MODULE_MSG); 126 126 msg.extension = SOF_IPC4_MOD_EXT_DST_MOD_INSTANCE(INVALID_PIPELINE_ID); 127 127 msg.extension |= SOF_IPC4_MOD_EXT_CORE_ID(0); 128 + msg.extension |= SOF_IPC4_MOD_EXT_PARAM_SIZE(sizeof(cfg) / sizeof(uint32_t)); 128 129 129 130 msg.data_size = sizeof(cfg); 130 131 msg.data_ptr = &cfg;
+3 -3
sound/soc/stm/stm32_sai_sub.c
··· 317 317 int div; 318 318 319 319 div = DIV_ROUND_CLOSEST(input_rate, output_rate); 320 - if (div > SAI_XCR1_MCKDIV_MAX(version)) { 320 + if (div > SAI_XCR1_MCKDIV_MAX(version) || div <= 0) { 321 321 dev_err(&sai->pdev->dev, "Divider %d out of range\n", div); 322 322 return -EINVAL; 323 323 } ··· 378 378 int div; 379 379 380 380 div = stm32_sai_get_clk_div(sai, *prate, rate); 381 - if (div < 0) 382 - return div; 381 + if (div <= 0) 382 + return -EINVAL; 383 383 384 384 mclk->freq = *prate / div; 385 385
+1 -1
sound/soc/stm/stm32_spdifrx.c
··· 939 939 { 940 940 struct stm32_spdifrx_data *spdifrx = platform_get_drvdata(pdev); 941 941 942 - if (spdifrx->ctrl_chan) 942 + if (!IS_ERR(spdifrx->ctrl_chan)) 943 943 dma_release_channel(spdifrx->ctrl_chan); 944 944 945 945 if (spdifrx->dmab)
+1
sound/usb/mixer.c
··· 1205 1205 } 1206 1206 break; 1207 1207 case USB_ID(0x1bcf, 0x2283): /* NexiGo N930AF FHD Webcam */ 1208 + case USB_ID(0x03f0, 0x654a): /* HP 320 FHD Webcam */ 1208 1209 if (!strcmp(kctl->id.name, "Mic Capture Volume")) { 1209 1210 usb_audio_info(chip, 1210 1211 "set resolution quirk: cval->res = 16\n");
+2
sound/usb/quirks.c
··· 2114 2114 2115 2115 static const struct usb_audio_quirk_flags_table quirk_flags_table[] = { 2116 2116 /* Device matches */ 2117 + DEVICE_FLG(0x03f0, 0x654a, /* HP 320 FHD Webcam */ 2118 + QUIRK_FLAG_GET_SAMPLE_RATE), 2117 2119 DEVICE_FLG(0x041e, 0x3000, /* Creative SB Extigy */ 2118 2120 QUIRK_FLAG_IGNORE_CTL_ERROR), 2119 2121 DEVICE_FLG(0x041e, 0x4080, /* Creative Live Cam VF0610 */