Skip to content

Commit 50643bb

Browse files
committed
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"
2 parents ceb0613 + fa59caa commit 50643bb

File tree

12 files changed

+43
-9
lines changed

12 files changed

+43
-9
lines changed

MAINTAINERS

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21617,6 +21617,15 @@ S: Supported
2161721617
W: https://github.com/thesofproject/linux/
2161821618
F: sound/soc/sof/
2161921619

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+
2162021629
SOUNDWIRE SUBSYSTEM
2162121630
M: Vinod Koul <vkoul@kernel.org>
2162221631
M: Bard Liao <yung-chuan.liao@linux.intel.com>

sound/core/ump.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1233,7 +1233,7 @@ static int fill_legacy_mapping(struct snd_ump_endpoint *ump)
12331233

12341234
num = 0;
12351235
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)
12371237
ump->legacy_mapping[num++] = i;
12381238

12391239
return num;

sound/firewire/tascam/amdtp-tascam.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ int amdtp_tscm_init(struct amdtp_stream *s, struct fw_unit *unit,
238238
err = amdtp_stream_init(s, unit, dir, flags, fmt,
239239
process_ctx_payloads, sizeof(struct amdtp_tscm));
240240
if (err < 0)
241-
return 0;
241+
return err;
242242

243243
if (dir == AMDTP_OUT_STREAM) {
244244
// Use fixed value for FDF field.

sound/pci/hda/patch_conexant.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,6 @@ static void cx_auto_shutdown(struct hda_codec *codec)
205205
{
206206
struct conexant_spec *spec = codec->spec;
207207

208-
snd_hda_gen_shutup_speakers(codec);
209-
210208
/* Turn the problematic codec into D3 to avoid spurious noises
211209
from the internal speaker during (and after) reboot */
212210
cx_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, false);

sound/soc/amd/yc/acp6x-mach.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
227227
DMI_MATCH(DMI_PRODUCT_NAME, "21M3"),
228228
}
229229
},
230+
{
231+
.driver_data = &acp6x_card,
232+
.matches = {
233+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
234+
DMI_MATCH(DMI_PRODUCT_NAME, "21M4"),
235+
}
236+
},
230237
{
231238
.driver_data = &acp6x_card,
232239
.matches = {
@@ -395,6 +402,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
395402
DMI_MATCH(DMI_PRODUCT_NAME, "Redmi Book Pro 15 2022"),
396403
}
397404
},
405+
{
406+
.driver_data = &acp6x_card,
407+
.matches = {
408+
DMI_MATCH(DMI_BOARD_VENDOR, "TIMI"),
409+
DMI_MATCH(DMI_PRODUCT_NAME, "Xiaomi Book Pro 14 2022"),
410+
}
411+
},
398412
{
399413
.driver_data = &acp6x_card,
400414
.matches = {

sound/soc/codecs/tas2781-fmwlib.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1992,6 +1992,7 @@ static int tasdevice_dspfw_ready(const struct firmware *fmw,
19921992
break;
19931993
case 0x202:
19941994
case 0x400:
1995+
case 0x401:
19951996
tas_priv->fw_parse_variable_header =
19961997
fw_parse_variable_header_git;
19971998
tas_priv->fw_parse_program_data =

sound/soc/sof/amd/acp.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,11 +342,19 @@ int acp_dma_status(struct acp_dev_data *adata, unsigned char ch)
342342
{
343343
struct snd_sof_dev *sdev = adata->dev;
344344
unsigned int val;
345+
unsigned int acp_dma_ch_sts;
345346
int ret = 0;
346347

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+
}
347355
val = snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_DMA_CNTL_0 + ch * sizeof(u32));
348356
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,
350358
ACP_REG_POLL_INTERVAL,
351359
ACP_DMA_COMPLETE_TIMEOUT_US);
352360
if (ret < 0)

sound/soc/sof/sof-client-probes-ipc4.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ static int ipc4_probes_init(struct sof_client_dev *cdev, u32 stream_tag,
125125
msg.primary |= SOF_IPC4_MSG_TARGET(SOF_IPC4_MODULE_MSG);
126126
msg.extension = SOF_IPC4_MOD_EXT_DST_MOD_INSTANCE(INVALID_PIPELINE_ID);
127127
msg.extension |= SOF_IPC4_MOD_EXT_CORE_ID(0);
128+
msg.extension |= SOF_IPC4_MOD_EXT_PARAM_SIZE(sizeof(cfg) / sizeof(uint32_t));
128129

129130
msg.data_size = sizeof(cfg);
130131
msg.data_ptr = &cfg;

sound/soc/stm/stm32_sai_sub.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ static int stm32_sai_get_clk_div(struct stm32_sai_sub_data *sai,
317317
int div;
318318

319319
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) {
321321
dev_err(&sai->pdev->dev, "Divider %d out of range\n", div);
322322
return -EINVAL;
323323
}
@@ -378,8 +378,8 @@ static long stm32_sai_mclk_round_rate(struct clk_hw *hw, unsigned long rate,
378378
int div;
379379

380380
div = stm32_sai_get_clk_div(sai, *prate, rate);
381-
if (div < 0)
382-
return div;
381+
if (div <= 0)
382+
return -EINVAL;
383383

384384
mclk->freq = *prate / div;
385385

sound/soc/stm/stm32_spdifrx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,7 @@ static void stm32_spdifrx_remove(struct platform_device *pdev)
939939
{
940940
struct stm32_spdifrx_data *spdifrx = platform_get_drvdata(pdev);
941941

942-
if (spdifrx->ctrl_chan)
942+
if (!IS_ERR(spdifrx->ctrl_chan))
943943
dma_release_channel(spdifrx->ctrl_chan);
944944

945945
if (spdifrx->dmab)

0 commit comments

Comments
 (0)