Skip to content

Commit d249037

Browse files
committed
Merge tag 'sound-7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "Again a collection of device-specific fixes. Most of changes are fairly small device-specific quirks of fixes for HD- and USB-audio, ASoC Intel, AMD, fsl, Cirrus and co. The only large LOC is for plumbing ASoC ACP driver to add the Cirrus Logic codec support, so this one is also just adding some tables" * tag 'sound-7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (21 commits) ALSA: us122l: drop redundant interface references ASoC: amd: yc: Add DMI quirk for ASUS EXPERTBOOK PM1503CDA ASoC: dt-bindings: renesas,rz-ssi: Document RZ/G3L SoC ASoC: SDCA: Add allocation failure check for Entity name ALSA: hda/senary: Ensure EAPD is enabled during init ALSA: hda/senary: Use codec->core.afg for GPIO access ALSA: doc: usb-audio: Add doc for QUIRK_FLAG_SKIP_IFACE_SETUP ASoC: dt-bindings: tegra: Add compatible for Tegra238 sound card ALSA: hda/hdmi: Add Tegra238 HDA codec device ID ASoC: cs35l56: Suppress pointless warning about number of GPIO pulls ASoC: amd: acp: Add ACP6.3 match entries for Cirrus Logic parts ASoC: Intel: sof_sdw: Add quirk for Alienware Area 51 (2025) 0CCD SKU ASoC: rt1321: fix DMIC ch2/3 mask issue ASoC: cs35l56: Only patch ASP registers if the DAI is part of a DAIlink ASoC: fsl_easrc: Fix event generation in fsl_easrc_iec958_set_reg() ASoC: fsl_easrc: Fix event generation in fsl_easrc_iec958_put_bits() ALSA: firewire: dice: Fix printf warning with W=1 ALSA: hda/tas2781: A workaround solution to lower-vol issue among lower calibrated-impedance micro-speaker on TAS2781 ALSA: hda/realtek: Add quirk for HP Pavilion 15-eh1xxx to enable mute LED ALSA: usb-audio: Add iface reset and delay quirk for AB13X USB Audio ...
2 parents 48976c0 + 8457669 commit d249037

22 files changed

Lines changed: 599 additions & 39 deletions

File tree

Documentation/devicetree/bindings/sound/nvidia,tegra-audio-graph-card.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ properties:
2323
enum:
2424
- nvidia,tegra210-audio-graph-card
2525
- nvidia,tegra186-audio-graph-card
26+
- nvidia,tegra238-audio-graph-card
2627
- nvidia,tegra264-audio-graph-card
2728

2829
clocks:

Documentation/devicetree/bindings/sound/renesas,rz-ssi.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ properties:
2020
- renesas,r9a07g044-ssi # RZ/G2{L,LC}
2121
- renesas,r9a07g054-ssi # RZ/V2L
2222
- renesas,r9a08g045-ssi # RZ/G3S
23+
- renesas,r9a08g046-ssi # RZ/G3L
2324
- const: renesas,rz-ssi
2425

2526
reg:

Documentation/sound/alsa-configuration.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2372,6 +2372,10 @@ quirk_flags
23722372
audible volume
23732373
* bit 25: ``mixer_capture_min_mute``
23742374
Similar to bit 24 but for capture streams
2375+
* bit 26: ``skip_iface_setup``
2376+
Skip the probe-time interface setup (usb_set_interface,
2377+
init_pitch, init_sample_rate); redundant with
2378+
snd_usb_endpoint_prepare() at stream-open time
23752379

23762380
This module supports multiple devices, autoprobe and hotplugging.
23772381

include/sound/cs35l56.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,7 @@ extern const char * const cs35l56_cal_set_status_text[3];
406406
extern const char * const cs35l56_tx_input_texts[CS35L56_NUM_INPUT_SRC];
407407
extern const unsigned int cs35l56_tx_input_values[CS35L56_NUM_INPUT_SRC];
408408

409+
int cs35l56_set_asp_patch(struct cs35l56_base *cs35l56_base);
409410
int cs35l56_set_patch(struct cs35l56_base *cs35l56_base);
410411
int cs35l56_mbox_send(struct cs35l56_base *cs35l56_base, unsigned int command);
411412
int cs35l56_firmware_shutdown(struct cs35l56_base *cs35l56_base);

include/sound/tas2781.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ struct tasdevice {
151151
struct bulk_reg_val *cali_data_backup;
152152
struct bulk_reg_val alp_cali_bckp;
153153
struct tasdevice_fw *cali_data_fmw;
154+
void *cali_specific;
154155
unsigned int dev_addr;
155156
unsigned int err_code;
156157
unsigned char cur_book;

sound/firewire/dice/dice.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ static void dice_card_strings(struct snd_dice *dice)
122122
fw_csr_string(dev->config_rom + 5, CSR_VENDOR, vendor, sizeof(vendor));
123123
strscpy(model, "?");
124124
fw_csr_string(dice->unit->directory, CSR_MODEL, model, sizeof(model));
125-
snprintf(card->longname, sizeof(card->longname),
125+
scnprintf(card->longname, sizeof(card->longname),
126126
"%s %s (serial %u) at %s, S%d",
127127
vendor, model, dev->config_rom[4] & 0x3fffff,
128128
dev_name(&dice->unit->device), 100 << dev->max_speed);

sound/hda/codecs/ca0132.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9816,6 +9816,15 @@ static void ca0132_config(struct hda_codec *codec)
98169816
spec->dig_in = 0x09;
98179817
break;
98189818
}
9819+
9820+
/* Default HP/Speaker auto-detect from headphone pin verb: enable if the
9821+
* pin config indicates presence detect (not AC_DEFCFG_MISC_NO_PRESENCE).
9822+
*/
9823+
if (spec->unsol_tag_hp &&
9824+
(snd_hda_query_pin_caps(codec, spec->unsol_tag_hp) & AC_PINCAP_PRES_DETECT) &&
9825+
!(get_defcfg_misc(snd_hda_codec_get_pincfg(codec, spec->unsol_tag_hp)) &
9826+
AC_DEFCFG_MISC_NO_PRESENCE))
9827+
spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID] = 1;
98199828
}
98209829

98219830
static int ca0132_prepare_verbs(struct hda_codec *codec)

sound/hda/codecs/hdmi/tegrahdmi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ static const struct hda_device_id snd_hda_id_tegrahdmi[] = {
299299
HDA_CODEC_ID_MODEL(0x10de002f, "Tegra194 HDMI/DP2", MODEL_TEGRA),
300300
HDA_CODEC_ID_MODEL(0x10de0030, "Tegra194 HDMI/DP3", MODEL_TEGRA),
301301
HDA_CODEC_ID_MODEL(0x10de0031, "Tegra234 HDMI/DP", MODEL_TEGRA234),
302+
HDA_CODEC_ID_MODEL(0x10de0032, "Tegra238 HDMI/DP", MODEL_TEGRA234),
302303
HDA_CODEC_ID_MODEL(0x10de0033, "SoC 33 HDMI/DP", MODEL_TEGRA234),
303304
HDA_CODEC_ID_MODEL(0x10de0034, "Tegra264 HDMI/DP", MODEL_TEGRA234),
304305
HDA_CODEC_ID_MODEL(0x10de0035, "SoC 35 HDMI/DP", MODEL_TEGRA234),

sound/hda/codecs/realtek/alc269.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6904,6 +6904,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
69046904
SND_PCI_QUIRK(0x103c, 0x8898, "HP EliteBook 845 G8 Notebook PC", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST),
69056905
SND_PCI_QUIRK(0x103c, 0x88b3, "HP ENVY x360 Convertible 15-es0xxx", ALC245_FIXUP_HP_ENVY_X360_MUTE_LED),
69066906
SND_PCI_QUIRK(0x103c, 0x88d0, "HP Pavilion 15-eh1xxx (mainboard 88D0)", ALC287_FIXUP_HP_GPIO_LED),
6907+
SND_PCI_QUIRK(0x103c, 0x88d1, "HP Pavilion 15-eh1xxx (mainboard 88D1)", ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT),
69076908
SND_PCI_QUIRK(0x103c, 0x88dd, "HP Pavilion 15z-ec200", ALC285_FIXUP_HP_MUTE_LED),
69086909
SND_PCI_QUIRK(0x103c, 0x88eb, "HP Victus 16-e0xxx", ALC245_FIXUP_HP_MUTE_LED_V2_COEFBIT),
69096910
SND_PCI_QUIRK(0x103c, 0x8902, "HP OMEN 16", ALC285_FIXUP_HP_MUTE_LED),

sound/hda/codecs/senarytech.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,13 @@
1919
#include "hda_jack.h"
2020
#include "generic.h"
2121

22-
/* GPIO node ID */
23-
#define SENARY_GPIO_NODE 0x01
24-
2522
struct senary_spec {
2623
struct hda_gen_spec gen;
2724

2825
/* extra EAPD pins */
2926
unsigned int num_eapds;
3027
hda_nid_t eapds[4];
28+
bool dynamic_eapd;
3129
hda_nid_t mute_led_eapd;
3230

3331
unsigned int parse_flags; /* flag for snd_hda_parse_pin_defcfg() */
@@ -123,19 +121,23 @@ static void senary_init_gpio_led(struct hda_codec *codec)
123121
unsigned int mask = spec->gpio_mute_led_mask | spec->gpio_mic_led_mask;
124122

125123
if (mask) {
126-
snd_hda_codec_write(codec, SENARY_GPIO_NODE, 0, AC_VERB_SET_GPIO_MASK,
124+
snd_hda_codec_write(codec, codec->core.afg, 0, AC_VERB_SET_GPIO_MASK,
127125
mask);
128-
snd_hda_codec_write(codec, SENARY_GPIO_NODE, 0, AC_VERB_SET_GPIO_DIRECTION,
126+
snd_hda_codec_write(codec, codec->core.afg, 0, AC_VERB_SET_GPIO_DIRECTION,
129127
mask);
130-
snd_hda_codec_write(codec, SENARY_GPIO_NODE, 0, AC_VERB_SET_GPIO_DATA,
128+
snd_hda_codec_write(codec, codec->core.afg, 0, AC_VERB_SET_GPIO_DATA,
131129
spec->gpio_led);
132130
}
133131
}
134132

135133
static int senary_init(struct hda_codec *codec)
136134
{
135+
struct senary_spec *spec = codec->spec;
136+
137137
snd_hda_gen_init(codec);
138138
senary_init_gpio_led(codec);
139+
if (!spec->dynamic_eapd)
140+
senary_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, true);
139141
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_INIT);
140142

141143
return 0;

0 commit comments

Comments
 (0)