Skip to content

Commit ebb8719

Browse files
committed
Merge tag 'sound-6.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "Likely the last pull request in 2025, again a collection of lots of small fixes. Most of them are various device-specific small fixes: - An ASoC core fix for correcting the clamping behavior of *_SX mixer elements - Various fixes for ASoC fsl, SOF, etc - Usual HD- and USB-audio quirks / fix-ups - A couple of error-handling fixes for legacy PCMCIA drivers" * tag 'sound-6.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (35 commits) ALSA: hda/realtek: fix PCI SSID for one of the HP 200 G2i laptop ASoC: ops: fix snd_soc_get_volsw for sx controls ALSA: hda/realtek: Add Asus quirk for TAS amplifiers ASoC: Intel: soc-acpi-intel-mtl-match: Add 6 amp CS35L63 with feedback ASoC: Intel: soc-acpi-intel-mtl-match: Add 6 amp CS35L56 with feedback ASoC: fsl-asoc-card: Use of_property_present() for non-boolean properties ASoC: rt1320: update VC blind write settings ASoC: fsl_xcvr: provide regmap names ASoC: fsl_sai: Add missing registers to cache default ASoC: ak4458: remove the reset operation in probe and remove ASoC: fsl_asrc_dma: fix duplicate debugfs directory error ASoC: fsl_easrc: fix duplicate debugfs directory error ALSA: hda/realtek: fix micmute LED reversed on HP Abe and Bantie ALSA: hda/realtek: Add support for HP Clipper Laptop ALSA: hda/realtek: Add support for HP Trekker Laptop ALSA: usb-mixer: us16x08: validate meter packet indices ASoC: Intel: soc-acpi-intel-nvl-match: Drop rt722 l3 from the match table ASoC: soc-acpi / SOF: Add best_effort flag to get_function_tplg_files op ASoC: SOF: Intel: pci-mtl: Change the topology path to intel/sof-ipc4-tplg ASoC: SOF: ipc4-topology: set playback channel mask ...
2 parents b927546 + 17753d1 commit ebb8719

28 files changed

Lines changed: 312 additions & 136 deletions

include/sound/soc-acpi.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@ struct snd_soc_acpi_link_adr {
203203
* @mach: the pointer of the machine driver
204204
* @prefix: the prefix of the topology file name. Typically, it is the path.
205205
* @tplg_files: the pointer of the array of the topology file names.
206+
* @best_effort: ignore non supported links and try to build the card in best effort
207+
* with supported links
206208
*/
207209
/* Descriptor for SST ASoC machine driver */
208210
struct snd_soc_acpi_mach {
@@ -224,7 +226,8 @@ struct snd_soc_acpi_mach {
224226
const u32 tplg_quirk_mask;
225227
int (*get_function_tplg_files)(struct snd_soc_card *card,
226228
const struct snd_soc_acpi_mach *mach,
227-
const char *prefix, const char ***tplg_files);
229+
const char *prefix, const char ***tplg_files,
230+
bool best_effort);
228231
};
229232

230233
#define SND_SOC_ACPI_MAX_CODECS 3

sound/hda/codecs/realtek/alc269.c

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1656,6 +1656,18 @@ static void alc236_fixup_hp_mute_led_micmute_vref(struct hda_codec *codec,
16561656
alc236_fixup_hp_micmute_led_vref(codec, fix, action);
16571657
}
16581658

1659+
static void alc236_fixup_hp_mute_led_micmute_gpio(struct hda_codec *codec,
1660+
const struct hda_fixup *fix, int action)
1661+
{
1662+
struct alc_spec *spec = codec->spec;
1663+
1664+
if (action == HDA_FIXUP_ACT_PRE_PROBE)
1665+
spec->micmute_led_polarity = 1;
1666+
1667+
alc236_fixup_hp_mute_led_coefbit2(codec, fix, action);
1668+
alc_fixup_hp_gpio_led(codec, action, 0x00, 0x01);
1669+
}
1670+
16591671
static inline void alc298_samsung_write_coef_pack(struct hda_codec *codec,
16601672
const unsigned short coefs[2])
16611673
{
@@ -3753,6 +3765,7 @@ enum {
37533765
ALC295_FIXUP_DELL_TAS2781_I2C,
37543766
ALC245_FIXUP_TAS2781_SPI_2,
37553767
ALC287_FIXUP_TXNW2781_I2C,
3768+
ALC287_FIXUP_TXNW2781_I2C_ASUS,
37563769
ALC287_FIXUP_YOGA7_14ARB7_I2C,
37573770
ALC245_FIXUP_HP_MUTE_LED_COEFBIT,
37583771
ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT,
@@ -5326,9 +5339,7 @@ static const struct hda_fixup alc269_fixups[] = {
53265339
},
53275340
[ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO] = {
53285341
.type = HDA_FIXUP_FUNC,
5329-
.v.func = alc236_fixup_hp_mute_led_coefbit2,
5330-
.chained = true,
5331-
.chain_id = ALC236_FIXUP_HP_GPIO_LED,
5342+
.v.func = alc236_fixup_hp_mute_led_micmute_gpio,
53325343
},
53335344
[ALC236_FIXUP_LENOVO_INV_DMIC] = {
53345345
.type = HDA_FIXUP_FUNC,
@@ -6053,6 +6064,12 @@ static const struct hda_fixup alc269_fixups[] = {
60536064
.chained = true,
60546065
.chain_id = ALC285_FIXUP_THINKPAD_HEADSET_JACK,
60556066
},
6067+
[ALC287_FIXUP_TXNW2781_I2C_ASUS] = {
6068+
.type = HDA_FIXUP_FUNC,
6069+
.v.func = tas2781_fixup_txnw_i2c,
6070+
.chained = true,
6071+
.chain_id = ALC294_FIXUP_ASUS_SPK,
6072+
},
60566073
[ALC287_FIXUP_YOGA7_14ARB7_I2C] = {
60576074
.type = HDA_FIXUP_FUNC,
60586075
.v.func = yoga7_14arb7_fixup_i2c,
@@ -6771,10 +6788,10 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
67716788
SND_PCI_QUIRK(0x103c, 0x8e61, "HP Trekker ", ALC287_FIXUP_CS35L41_I2C_2),
67726789
SND_PCI_QUIRK(0x103c, 0x8e62, "HP Trekker ", ALC287_FIXUP_CS35L41_I2C_2),
67736790
SND_PCI_QUIRK(0x103c, 0x8e8a, "HP NexusX", ALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED),
6791+
SND_PCI_QUIRK(0x103c, 0x8e9c, "HP 16 Clipper OmniBook X X360", ALC287_FIXUP_CS35L41_I2C_2),
67746792
SND_PCI_QUIRK(0x103c, 0x8e9d, "HP 17 Turbine OmniBook X UMA", ALC287_FIXUP_CS35L41_I2C_2),
67756793
SND_PCI_QUIRK(0x103c, 0x8e9e, "HP 17 Turbine OmniBook X UMA", ALC287_FIXUP_CS35L41_I2C_2),
67766794
SND_PCI_QUIRK(0x103c, 0x8eb6, "HP Abe A6U", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO),
6777-
SND_PCI_QUIRK(0x103c, 0x8eb7, "HP Abe A6U", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO),
67786795
SND_PCI_QUIRK(0x103c, 0x8eb8, "HP Abe A6U", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO),
67796796
SND_PCI_QUIRK(0x103c, 0x8ec1, "HP 200 G2i", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO),
67806797
SND_PCI_QUIRK(0x103c, 0x8ec4, "HP Bantie I6U", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO),
@@ -6790,11 +6807,13 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
67906807
SND_PCI_QUIRK(0x103c, 0x8eda, "HP ZBook Firefly 16W", ALC245_FIXUP_HP_TAS2781_SPI_MUTE_LED),
67916808
SND_PCI_QUIRK(0x103c, 0x8ee4, "HP Bantie A6U", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO),
67926809
SND_PCI_QUIRK(0x103c, 0x8ee5, "HP Bantie A6U", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO),
6810+
SND_PCI_QUIRK(0x103c, 0x8ee7, "HP Abe A6U", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO),
67936811
SND_PCI_QUIRK(0x103c, 0x8f0c, "HP ZBook X G2i 16W", ALC236_FIXUP_HP_GPIO_LED),
67946812
SND_PCI_QUIRK(0x103c, 0x8f0e, "HP ZBook X G2i 16W", ALC236_FIXUP_HP_GPIO_LED),
67956813
SND_PCI_QUIRK(0x103c, 0x8f40, "HP ZBook 8 G2a 14", ALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED),
67966814
SND_PCI_QUIRK(0x103c, 0x8f41, "HP ZBook 8 G2a 16", ALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED),
67976815
SND_PCI_QUIRK(0x103c, 0x8f42, "HP ZBook 8 G2a 14W", ALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED),
6816+
SND_PCI_QUIRK(0x103c, 0x8f57, "HP Trekker G7JC", ALC287_FIXUP_CS35L41_I2C_2),
67986817
SND_PCI_QUIRK(0x103c, 0x8f62, "HP ZBook 8 G2a 16W", ALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED),
67996818
SND_PCI_QUIRK(0x1043, 0x1032, "ASUS VivoBook X513EA", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
68006819
SND_PCI_QUIRK(0x1043, 0x1034, "ASUS GU605C", ALC285_FIXUP_ASUS_GU605_SPI_SPEAKER2_TO_DAC1),
@@ -6827,8 +6846,8 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
68276846
SND_PCI_QUIRK(0x1043, 0x12f0, "ASUS X541UV", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
68286847
SND_PCI_QUIRK(0x1043, 0x1313, "Asus K42JZ", ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE),
68296848
SND_PCI_QUIRK(0x1043, 0x1314, "ASUS GA605K", ALC285_FIXUP_ASUS_GA605K_HEADSET_MIC),
6830-
SND_PCI_QUIRK(0x1043, 0x1384, "ASUS RC73XA", ALC287_FIXUP_TXNW2781_I2C),
6831-
SND_PCI_QUIRK(0x1043, 0x1394, "ASUS RC73YA", ALC287_FIXUP_TXNW2781_I2C),
6849+
SND_PCI_QUIRK(0x1043, 0x1384, "ASUS RC73XA", ALC287_FIXUP_TXNW2781_I2C_ASUS),
6850+
SND_PCI_QUIRK(0x1043, 0x1394, "ASUS RC73YA", ALC287_FIXUP_TXNW2781_I2C_ASUS),
68326851
SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
68336852
SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
68346853
SND_PCI_QUIRK(0x1043, 0x1433, "ASUS GX650PY/PZ/PV/PU/PYV/PZV/PIV/PVV", ALC285_FIXUP_ASUS_I2C_HEADSET_MIC),
@@ -7296,6 +7315,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
72967315
SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
72977316
SND_PCI_QUIRK(0x1d72, 0x1945, "Redmi G", ALC256_FIXUP_ASUS_HEADSET_MIC),
72987317
SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
7318+
SND_PCI_QUIRK(0x1e39, 0xca14, "MEDION NM14LNL", ALC233_FIXUP_MEDION_MTL_SPK),
72997319
SND_PCI_QUIRK(0x1ee7, 0x2078, "HONOR BRB-X M1010", ALC2XX_FIXUP_HEADSET_MIC),
73007320
SND_PCI_QUIRK(0x1f66, 0x0105, "Ayaneo Portable Game Player", ALC287_FIXUP_CS35L41_I2C_2),
73017321
SND_PCI_QUIRK(0x2014, 0x800a, "Positivo ARN50", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),

sound/hda/controllers/cix-ipbloq.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,8 @@ static int cix_ipbloq_hda_init(struct cix_ipbloq_hda *hda,
115115
bus->addr = res->start;
116116

117117
irq_id = platform_get_irq(pdev, 0);
118-
if (irq_id < 0) {
119-
dev_err(hda->dev, "failed to get the irq, err = %d\n", irq_id);
118+
if (irq_id < 0)
120119
return irq_id;
121-
}
122120

123121
err = devm_request_irq(hda->dev, irq_id, azx_interrupt,
124122
0, KBUILD_MODNAME, chip);

sound/pcmcia/pdaudiocf/pdaudiocf.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,13 @@ static int snd_pdacf_probe(struct pcmcia_device *link)
131131
link->config_index = 1;
132132
link->config_regs = PRESENT_OPTION;
133133

134-
return pdacf_config(link);
134+
err = pdacf_config(link);
135+
if (err < 0) {
136+
card_list[i] = NULL;
137+
snd_card_free(card);
138+
return err;
139+
}
140+
return 0;
135141
}
136142

137143

sound/pcmcia/vx/vxpocket.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,13 @@ static int vxpocket_probe(struct pcmcia_device *p_dev)
284284

285285
vxp->p_dev = p_dev;
286286

287-
return vxpocket_config(p_dev);
287+
err = vxpocket_config(p_dev);
288+
if (err < 0) {
289+
card_alloc &= ~(1 << i);
290+
snd_card_free(card);
291+
return err;
292+
}
293+
return 0;
288294
}
289295

290296
static void vxpocket_detach(struct pcmcia_device *link)

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
661661
DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 15 C7UCX"),
662662
}
663663
},
664+
{
665+
.driver_data = &acp6x_card,
666+
.matches = {
667+
DMI_MATCH(DMI_BOARD_VENDOR, "HONOR"),
668+
DMI_MATCH(DMI_PRODUCT_NAME, "GOH-X"),
669+
}
670+
},
664671
{}
665672
};
666673

sound/soc/codecs/ak4458.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -783,16 +783,12 @@ static int ak4458_i2c_probe(struct i2c_client *i2c)
783783

784784
pm_runtime_enable(&i2c->dev);
785785
regcache_cache_only(ak4458->regmap, true);
786-
ak4458_reset(ak4458, false);
787786

788787
return 0;
789788
}
790789

791790
static void ak4458_i2c_remove(struct i2c_client *i2c)
792791
{
793-
struct ak4458_priv *ak4458 = i2c_get_clientdata(i2c);
794-
795-
ak4458_reset(ak4458, true);
796792
pm_runtime_disable(&i2c->dev);
797793
}
798794

sound/soc/codecs/rt1320-sdw.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ static const struct reg_sequence rt1320_blind_write[] = {
115115
static const struct reg_sequence rt1320_vc_blind_write[] = {
116116
{ 0xc003, 0xe0 },
117117
{ 0xe80a, 0x01 },
118-
{ 0xc5c3, 0xf3 },
118+
{ 0xc5c3, 0xf2 },
119+
{ 0xc5c8, 0x03 },
119120
{ 0xc057, 0x51 },
120121
{ 0xc054, 0x35 },
121122
{ 0xca05, 0xd6 },
@@ -126,8 +127,6 @@ static const struct reg_sequence rt1320_vc_blind_write[] = {
126127
{ 0xc609, 0x40 },
127128
{ 0xc046, 0xff },
128129
{ 0xc045, 0xff },
129-
{ 0xda81, 0x14 },
130-
{ 0xda8d, 0x14 },
131130
{ 0xc044, 0xff },
132131
{ 0xc043, 0xff },
133132
{ 0xc042, 0xff },
@@ -136,8 +135,8 @@ static const struct reg_sequence rt1320_vc_blind_write[] = {
136135
{ 0xcc10, 0x01 },
137136
{ 0xc700, 0xf0 },
138137
{ 0xc701, 0x13 },
139-
{ 0xc901, 0x09 },
140-
{ 0xc900, 0xd0 },
138+
{ 0xc901, 0x04 },
139+
{ 0xc900, 0x73 },
141140
{ 0xde03, 0x05 },
142141
{ 0xdd0b, 0x0d },
143142
{ 0xdd0a, 0xff },
@@ -153,6 +152,7 @@ static const struct reg_sequence rt1320_vc_blind_write[] = {
153152
{ 0xf082, 0xff },
154153
{ 0xf081, 0xff },
155154
{ 0xf080, 0xff },
155+
{ 0xe801, 0x01 },
156156
{ 0xe802, 0xf8 },
157157
{ 0xe803, 0xbe },
158158
{ 0xc003, 0xc0 },
@@ -202,7 +202,7 @@ static const struct reg_sequence rt1320_vc_blind_write[] = {
202202
{ 0x3fc2bfc3, 0x00 },
203203
{ 0x3fc2bfc2, 0x00 },
204204
{ 0x3fc2bfc1, 0x00 },
205-
{ 0x3fc2bfc0, 0x03 },
205+
{ 0x3fc2bfc0, 0x07 },
206206
{ 0x0000d486, 0x43 },
207207
{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_REQ_POWER_STATE, 0), 0x00 },
208208
{ 0x1000db00, 0x07 },
@@ -241,9 +241,7 @@ static const struct reg_sequence rt1320_vc_blind_write[] = {
241241
{ 0x1000db21, 0x00 },
242242
{ 0x1000db22, 0x00 },
243243
{ 0x1000db23, 0x00 },
244-
{ 0x0000d540, 0x01 },
245-
{ 0x0000c081, 0xfc },
246-
{ 0x0000f01e, 0x80 },
244+
{ 0x0000d540, 0x21 },
247245
{ 0xc01b, 0xfc },
248246
{ 0xc5d1, 0x89 },
249247
{ 0xc5d8, 0x0a },

sound/soc/fsl/fsl-asoc-card.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,8 +1045,8 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
10451045
* The notifier is initialized in snd_soc_card_jack_new(), then
10461046
* snd_soc_jack_notifier_register can be called.
10471047
*/
1048-
if (of_property_read_bool(np, "hp-det-gpios") ||
1049-
of_property_read_bool(np, "hp-det-gpio") /* deprecated */) {
1048+
if (of_property_present(np, "hp-det-gpios") ||
1049+
of_property_present(np, "hp-det-gpio") /* deprecated */) {
10501050
ret = simple_util_init_jack(&priv->card, &priv->hp_jack,
10511051
1, NULL, "Headphone Jack");
10521052
if (ret)
@@ -1055,8 +1055,8 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
10551055
snd_soc_jack_notifier_register(&priv->hp_jack.jack, &hp_jack_nb);
10561056
}
10571057

1058-
if (of_property_read_bool(np, "mic-det-gpios") ||
1059-
of_property_read_bool(np, "mic-det-gpio") /* deprecated */) {
1058+
if (of_property_present(np, "mic-det-gpios") ||
1059+
of_property_present(np, "mic-det-gpio") /* deprecated */) {
10601060
ret = simple_util_init_jack(&priv->card, &priv->mic_jack,
10611061
0, NULL, "Mic Jack");
10621062
if (ret)

sound/soc/fsl/fsl_asrc_dma.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,5 +473,8 @@ struct snd_soc_component_driver fsl_asrc_component = {
473473
.pointer = fsl_asrc_dma_pcm_pointer,
474474
.pcm_construct = fsl_asrc_dma_pcm_new,
475475
.legacy_dai_naming = 1,
476+
#ifdef CONFIG_DEBUG_FS
477+
.debugfs_prefix = "asrc",
478+
#endif
476479
};
477480
EXPORT_SYMBOL_GPL(fsl_asrc_component);

0 commit comments

Comments
 (0)