Skip to content

Commit 7ae0d8f

Browse files
wangdichengtiwai
authored andcommitted
ALSA: hda/senary: Ensure EAPD is enabled during init
The driver sets spec->gen.own_eapd_ctl to take manual control of the EAPD (External Amplifier). However, senary_init does not turn on the EAPD, while senary_shutdown turns it off. Since the generic driver skips EAPD handling when own_eapd_ctl is set, the EAPD remains off after initialization (e.g., after resume), leaving the codec in a non-functional state. Explicitly call senary_auto_turn_eapd in senary_init to ensure the EAPD is enabled and the codec is functional. Signed-off-by: wangdicheng <wangdicheng@kylinos.cn> Link: https://patch.msgid.link/20260303081516.583438-1-wangdich9700@163.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 83307ae commit 7ae0d8f

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

sound/hda/codecs/senarytech.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ struct senary_spec {
2525
/* extra EAPD pins */
2626
unsigned int num_eapds;
2727
hda_nid_t eapds[4];
28+
bool dynamic_eapd;
2829
hda_nid_t mute_led_eapd;
2930

3031
unsigned int parse_flags; /* flag for snd_hda_parse_pin_defcfg() */
@@ -131,8 +132,12 @@ static void senary_init_gpio_led(struct hda_codec *codec)
131132

132133
static int senary_init(struct hda_codec *codec)
133134
{
135+
struct senary_spec *spec = codec->spec;
136+
134137
snd_hda_gen_init(codec);
135138
senary_init_gpio_led(codec);
139+
if (!spec->dynamic_eapd)
140+
senary_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, true);
136141
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_INIT);
137142

138143
return 0;

0 commit comments

Comments
 (0)