Skip to content

Commit 697fa9b

Browse files
committed
Merge tag 'sound-6.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "Lots of small fixes, and almost all are device-specific. A few of them are the fixes for the old regressions by the fast kctl lookups (introduced around 5.19). Others are ASoC simple-card fixes, selftest compile warning fixes, ASoC AMD quirks, various ASoC codec fixes as well as usual HD-audio quirks" * tag 'sound-6.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (26 commits) ALSA: hda/realtek: Enable 4 amplifiers instead of 2 on a HP platform ALSA: hda: Fix kctl->id initialization ALSA: gus: Fix kctl->id initialization ALSA: cmipci: Fix kctl->id initialization ALSA: ymfpci: Fix kctl->id initialization ALSA: ice1712,ice1724: fix the kcontrol->id initialization ALSA: hda/realtek: Add quirk for Clevo NS50AU ALSA: hda/realtek: Add quirks for Asus ROG 2024 laptops using CS35L41 ALSA: hda/realtek: Add "Intel Reference board" and "NUC 13" SSID in the ALC256 ALSA: hda/realtek: Add Lenovo P3 Tower platform ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01 selftests: alsa: pcm-test: Fix compiler warnings about the format ASoC: fsl_sai: Enable BCI bit if SAI works on synchronous mode with BYP asserted ASoC: simple-card-utils: fix PCM constraint error check ASoC: cs35l56: Remove NULL check from cs35l56_sdw_dai_set_stream() ASoC: max98363: limit the number of channel to 1 ASoC: max98363: Removed 32bit support ASoC: mediatek: mt8195: fix use-after-free in driver remove path ASoC: mediatek: mt8188: fix use-after-free in driver remove path ASoC: amd: yc: Add Thinkpad Neo14 to quirks list for acp6x ...
2 parents 8fc1c59 + b752a38 commit 697fa9b

32 files changed

+151
-116
lines changed

sound/isa/gus/gus_pcm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -892,10 +892,10 @@ int snd_gf1_pcm_new(struct snd_gus_card *gus, int pcm_dev, int control_index)
892892
kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control1, gus);
893893
else
894894
kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control, gus);
895+
kctl->id.index = control_index;
895896
err = snd_ctl_add(card, kctl);
896897
if (err < 0)
897898
return err;
898-
kctl->id.index = control_index;
899899

900900
return 0;
901901
}

sound/pci/cmipci.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2688,20 +2688,20 @@ static int snd_cmipci_mixer_new(struct cmipci *cm, int pcm_spdif_device)
26882688
}
26892689
if (cm->can_ac3_hw) {
26902690
kctl = snd_ctl_new1(&snd_cmipci_spdif_default, cm);
2691+
kctl->id.device = pcm_spdif_device;
26912692
err = snd_ctl_add(card, kctl);
26922693
if (err < 0)
26932694
return err;
2694-
kctl->id.device = pcm_spdif_device;
26952695
kctl = snd_ctl_new1(&snd_cmipci_spdif_mask, cm);
2696+
kctl->id.device = pcm_spdif_device;
26962697
err = snd_ctl_add(card, kctl);
26972698
if (err < 0)
26982699
return err;
2699-
kctl->id.device = pcm_spdif_device;
27002700
kctl = snd_ctl_new1(&snd_cmipci_spdif_stream, cm);
2701+
kctl->id.device = pcm_spdif_device;
27012702
err = snd_ctl_add(card, kctl);
27022703
if (err < 0)
27032704
return err;
2704-
kctl->id.device = pcm_spdif_device;
27052705
}
27062706
if (cm->chip_version <= 37) {
27072707
sw = snd_cmipci_old_mixer_switches;

sound/pci/hda/hda_codec.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2458,10 +2458,14 @@ int snd_hda_create_dig_out_ctls(struct hda_codec *codec,
24582458
type == HDA_PCM_TYPE_HDMI) {
24592459
/* suppose a single SPDIF device */
24602460
for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) {
2461+
struct snd_ctl_elem_id id;
2462+
24612463
kctl = find_mixer_ctl(codec, dig_mix->name, 0, 0);
24622464
if (!kctl)
24632465
break;
2464-
kctl->id.index = spdif_index;
2466+
id = kctl->id;
2467+
id.index = spdif_index;
2468+
snd_ctl_rename_id(codec->card, &kctl->id, &id);
24652469
}
24662470
bus->primary_dig_out_type = HDA_PCM_TYPE_HDMI;
24672471
}

sound/pci/hda/patch_realtek.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9500,7 +9500,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
95009500
SND_PCI_QUIRK(0x103c, 0x8b8a, "HP", ALC236_FIXUP_HP_GPIO_LED),
95019501
SND_PCI_QUIRK(0x103c, 0x8b8b, "HP", ALC236_FIXUP_HP_GPIO_LED),
95029502
SND_PCI_QUIRK(0x103c, 0x8b8d, "HP", ALC236_FIXUP_HP_GPIO_LED),
9503-
SND_PCI_QUIRK(0x103c, 0x8b8f, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9503+
SND_PCI_QUIRK(0x103c, 0x8b8f, "HP", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
95049504
SND_PCI_QUIRK(0x103c, 0x8b92, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
95059505
SND_PCI_QUIRK(0x103c, 0x8b96, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
95069506
SND_PCI_QUIRK(0x103c, 0x8b97, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
@@ -9547,6 +9547,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
95479547
SND_PCI_QUIRK(0x1043, 0x1a8f, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2),
95489548
SND_PCI_QUIRK(0x1043, 0x1b11, "ASUS UX431DA", ALC294_FIXUP_ASUS_COEF_1B),
95499549
SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC),
9550+
SND_PCI_QUIRK(0x1043, 0x1b93, "ASUS G614JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2),
95509551
SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
95519552
SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
95529553
SND_PCI_QUIRK(0x1043, 0x1c62, "ASUS GU603", ALC289_FIXUP_ASUS_GA401),
@@ -9565,6 +9566,11 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
95659566
SND_PCI_QUIRK(0x1043, 0x1f12, "ASUS UM5302", ALC287_FIXUP_CS35L41_I2C_2),
95669567
SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401),
95679568
SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2),
9569+
SND_PCI_QUIRK(0x1043, 0x3a20, "ASUS G614JZR", ALC245_FIXUP_CS35L41_SPI_2),
9570+
SND_PCI_QUIRK(0x1043, 0x3a30, "ASUS G814JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2),
9571+
SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC245_FIXUP_CS35L41_SPI_2),
9572+
SND_PCI_QUIRK(0x1043, 0x3a50, "ASUS G834JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2),
9573+
SND_PCI_QUIRK(0x1043, 0x3a60, "ASUS G634JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2),
95689574
SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC),
95699575
SND_PCI_QUIRK(0x1043, 0x834a, "ASUS S101", ALC269_FIXUP_STEREO_DMIC),
95709576
SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
@@ -9588,6 +9594,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
95889594
SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
95899595
SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
95909596
SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
9597+
SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC225_FIXUP_HEADSET_JACK),
95919598
SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE),
95929599
SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
95939600
SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
@@ -9636,6 +9643,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
96369643
SND_PCI_QUIRK(0x1558, 0x5101, "Clevo S510WU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
96379644
SND_PCI_QUIRK(0x1558, 0x5157, "Clevo W517GU1", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
96389645
SND_PCI_QUIRK(0x1558, 0x51a1, "Clevo NS50MU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
9646+
SND_PCI_QUIRK(0x1558, 0x51b1, "Clevo NS50AU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
96399647
SND_PCI_QUIRK(0x1558, 0x5630, "Clevo NP50RNJS", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
96409648
SND_PCI_QUIRK(0x1558, 0x70a1, "Clevo NB70T[HJK]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
96419649
SND_PCI_QUIRK(0x1558, 0x70b3, "Clevo NK70SB", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
@@ -9807,6 +9815,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
98079815
SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),
98089816
SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),
98099817
SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10),
9818+
SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC225_FIXUP_HEADSET_JACK),
98109819
SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
98119820

98129821
#if 0
@@ -11694,6 +11703,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
1169411703
SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
1169511704
SND_PCI_QUIRK(0x103c, 0x872b, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
1169611705
SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2),
11706+
SND_PCI_QUIRK(0x103c, 0x8768, "HP Slim Desktop S01", ALC671_FIXUP_HP_HEADSET_MIC2),
1169711707
SND_PCI_QUIRK(0x103c, 0x877e, "HP 288 Pro G6", ALC671_FIXUP_HP_HEADSET_MIC2),
1169811708
SND_PCI_QUIRK(0x103c, 0x885f, "HP 288 Pro G8", ALC671_FIXUP_HP_HEADSET_MIC2),
1169911709
SND_PCI_QUIRK(0x1043, 0x1080, "Asus UX501VW", ALC668_FIXUP_HEADSET_MODE),
@@ -11715,6 +11725,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
1171511725
SND_PCI_QUIRK(0x14cd, 0x5003, "USI", ALC662_FIXUP_USI_HEADSET_MODE),
1171611726
SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC662_FIXUP_LENOVO_MULTI_CODECS),
1171711727
SND_PCI_QUIRK(0x17aa, 0x1057, "Lenovo P360", ALC897_FIXUP_HEADSET_MIC_PIN),
11728+
SND_PCI_QUIRK(0x17aa, 0x1064, "Lenovo P3 Tower", ALC897_FIXUP_HEADSET_MIC_PIN),
1171811729
SND_PCI_QUIRK(0x17aa, 0x32ca, "Lenovo ThinkCentre M80", ALC897_FIXUP_HEADSET_MIC_PIN),
1171911730
SND_PCI_QUIRK(0x17aa, 0x32cb, "Lenovo ThinkCentre M70", ALC897_FIXUP_HEADSET_MIC_PIN),
1172011731
SND_PCI_QUIRK(0x17aa, 0x32cf, "Lenovo ThinkCentre M950", ALC897_FIXUP_HEADSET_MIC_PIN),

sound/pci/ice1712/aureon.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1899,11 +1899,12 @@ static int aureon_add_controls(struct snd_ice1712 *ice)
18991899
else {
19001900
for (i = 0; i < ARRAY_SIZE(cs8415_controls); i++) {
19011901
struct snd_kcontrol *kctl;
1902-
err = snd_ctl_add(ice->card, (kctl = snd_ctl_new1(&cs8415_controls[i], ice)));
1903-
if (err < 0)
1904-
return err;
1902+
kctl = snd_ctl_new1(&cs8415_controls[i], ice);
19051903
if (i > 1)
19061904
kctl->id.device = ice->pcm->device;
1905+
err = snd_ctl_add(ice->card, kctl);
1906+
if (err < 0)
1907+
return err;
19071908
}
19081909
}
19091910
}

sound/pci/ice1712/ice1712.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2371,22 +2371,26 @@ int snd_ice1712_spdif_build_controls(struct snd_ice1712 *ice)
23712371

23722372
if (snd_BUG_ON(!ice->pcm_pro))
23732373
return -EIO;
2374-
err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_ice1712_spdif_default, ice));
2374+
kctl = snd_ctl_new1(&snd_ice1712_spdif_default, ice);
2375+
kctl->id.device = ice->pcm_pro->device;
2376+
err = snd_ctl_add(ice->card, kctl);
23752377
if (err < 0)
23762378
return err;
2379+
kctl = snd_ctl_new1(&snd_ice1712_spdif_maskc, ice);
23772380
kctl->id.device = ice->pcm_pro->device;
2378-
err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_ice1712_spdif_maskc, ice));
2381+
err = snd_ctl_add(ice->card, kctl);
23792382
if (err < 0)
23802383
return err;
2384+
kctl = snd_ctl_new1(&snd_ice1712_spdif_maskp, ice);
23812385
kctl->id.device = ice->pcm_pro->device;
2382-
err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_ice1712_spdif_maskp, ice));
2386+
err = snd_ctl_add(ice->card, kctl);
23832387
if (err < 0)
23842388
return err;
2389+
kctl = snd_ctl_new1(&snd_ice1712_spdif_stream, ice);
23852390
kctl->id.device = ice->pcm_pro->device;
2386-
err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_ice1712_spdif_stream, ice));
2391+
err = snd_ctl_add(ice->card, kctl);
23872392
if (err < 0)
23882393
return err;
2389-
kctl->id.device = ice->pcm_pro->device;
23902394
ice->spdif.stream_ctl = kctl;
23912395
return 0;
23922396
}

sound/pci/ice1712/ice1724.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2392,23 +2392,27 @@ static int snd_vt1724_spdif_build_controls(struct snd_ice1712 *ice)
23922392
if (err < 0)
23932393
return err;
23942394

2395-
err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_vt1724_spdif_default, ice));
2395+
kctl = snd_ctl_new1(&snd_vt1724_spdif_default, ice);
2396+
kctl->id.device = ice->pcm->device;
2397+
err = snd_ctl_add(ice->card, kctl);
23962398
if (err < 0)
23972399
return err;
2400+
kctl = snd_ctl_new1(&snd_vt1724_spdif_maskc, ice);
23982401
kctl->id.device = ice->pcm->device;
2399-
err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_vt1724_spdif_maskc, ice));
2402+
err = snd_ctl_add(ice->card, kctl);
24002403
if (err < 0)
24012404
return err;
2405+
kctl = snd_ctl_new1(&snd_vt1724_spdif_maskp, ice);
24022406
kctl->id.device = ice->pcm->device;
2403-
err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_vt1724_spdif_maskp, ice));
2407+
err = snd_ctl_add(ice->card, kctl);
24042408
if (err < 0)
24052409
return err;
2406-
kctl->id.device = ice->pcm->device;
24072410
#if 0 /* use default only */
2408-
err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_vt1724_spdif_stream, ice));
2411+
kctl = snd_ctl_new1(&snd_vt1724_spdif_stream, ice);
2412+
kctl->id.device = ice->pcm->device;
2413+
err = snd_ctl_add(ice->card, kctl);
24092414
if (err < 0)
24102415
return err;
2411-
kctl->id.device = ice->pcm->device;
24122416
ice->spdif.stream_ctl = kctl;
24132417
#endif
24142418
return 0;

sound/pci/ymfpci/ymfpci_main.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1822,20 +1822,20 @@ int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch)
18221822
if (snd_BUG_ON(!chip->pcm_spdif))
18231823
return -ENXIO;
18241824
kctl = snd_ctl_new1(&snd_ymfpci_spdif_default, chip);
1825+
kctl->id.device = chip->pcm_spdif->device;
18251826
err = snd_ctl_add(chip->card, kctl);
18261827
if (err < 0)
18271828
return err;
1828-
kctl->id.device = chip->pcm_spdif->device;
18291829
kctl = snd_ctl_new1(&snd_ymfpci_spdif_mask, chip);
1830+
kctl->id.device = chip->pcm_spdif->device;
18301831
err = snd_ctl_add(chip->card, kctl);
18311832
if (err < 0)
18321833
return err;
1833-
kctl->id.device = chip->pcm_spdif->device;
18341834
kctl = snd_ctl_new1(&snd_ymfpci_spdif_stream, chip);
1835+
kctl->id.device = chip->pcm_spdif->device;
18351836
err = snd_ctl_add(chip->card, kctl);
18361837
if (err < 0)
18371838
return err;
1838-
kctl->id.device = chip->pcm_spdif->device;
18391839
chip->spdif_pcm_ctl = kctl;
18401840

18411841
/* direct recording source */

sound/soc/amd/ps/pci-ps.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,7 @@ static int create_acp63_platform_devs(struct pci_dev *pci, struct acp63_dev_data
211211
case ACP63_PDM_DEV_MASK:
212212
adata->pdm_dev_index = 0;
213213
acp63_fill_platform_dev_info(&pdevinfo[0], parent, NULL, "acp_ps_pdm_dma",
214-
0, adata->res, 1, &adata->acp_lock,
215-
sizeof(adata->acp_lock));
214+
0, adata->res, 1, NULL, 0);
216215
acp63_fill_platform_dev_info(&pdevinfo[1], parent, NULL, "dmic-codec",
217216
0, NULL, 0, NULL, 0);
218217
acp63_fill_platform_dev_info(&pdevinfo[2], parent, NULL, "acp_ps_mach",

sound/soc/amd/ps/ps-pdm-dma.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -361,12 +361,12 @@ static int acp63_pdm_audio_probe(struct platform_device *pdev)
361361
{
362362
struct resource *res;
363363
struct pdm_dev_data *adata;
364+
struct acp63_dev_data *acp_data;
365+
struct device *parent;
364366
int status;
365367

366-
if (!pdev->dev.platform_data) {
367-
dev_err(&pdev->dev, "platform_data not retrieved\n");
368-
return -ENODEV;
369-
}
368+
parent = pdev->dev.parent;
369+
acp_data = dev_get_drvdata(parent);
370370
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
371371
if (!res) {
372372
dev_err(&pdev->dev, "IORESOURCE_MEM FAILED\n");
@@ -382,7 +382,7 @@ static int acp63_pdm_audio_probe(struct platform_device *pdev)
382382
return -ENOMEM;
383383

384384
adata->capture_stream = NULL;
385-
adata->acp_lock = pdev->dev.platform_data;
385+
adata->acp_lock = &acp_data->acp_lock;
386386
dev_set_drvdata(&pdev->dev, adata);
387387
status = devm_snd_soc_register_component(&pdev->dev,
388388
&acp63_pdm_component,

0 commit comments

Comments
 (0)