mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
ALSA: hda/realtek: Add ALC235 support for headset mode
The ALC235 (0x10ec0235) is registered as the ALC255 codec variant in patch_alc269(), but the headset mode functions were missing a case for it, so the CTIA/OMTP jack type detection and routing never ran on this codec. As a result, a plugged-in headset is detected (jack presence works) but the microphone signal is never routed, leaving the capture stream permanently silent. Verified on an ASUS M5451GA laptop (HDA:10ec0235,10431814): with the ALC255 coef sequence applied, the headset microphone works correctly. Signed-off-by: Zeyu Li <13776528859@163.com> Link: https://patch.msgid.link/20260926140336.27896-1-13776528859@163.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
819f6aacbb
commit
9ee4266827
|
|
@ -1292,6 +1292,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
|
|||
}
|
||||
|
||||
switch (codec->core.vendor_id) {
|
||||
case 0x10ec0235:
|
||||
case 0x10ec0255:
|
||||
alc_process_coef_fw(codec, coef0255);
|
||||
break;
|
||||
|
|
@ -1407,6 +1408,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
|
|||
};
|
||||
|
||||
switch (codec->core.vendor_id) {
|
||||
case 0x10ec0235:
|
||||
case 0x10ec0255:
|
||||
alc_write_coef_idx(codec, 0x45, 0xc489);
|
||||
snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
|
||||
|
|
@ -1562,6 +1564,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
|
|||
alc_process_coef_fw(codec, coef0225);
|
||||
alc_hp_enable_unmute(codec, 75);
|
||||
break;
|
||||
case 0x10ec0235:
|
||||
case 0x10ec0255:
|
||||
alc_process_coef_fw(codec, coef0255);
|
||||
break;
|
||||
|
|
@ -1663,6 +1666,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
|
|||
};
|
||||
|
||||
switch (codec->core.vendor_id) {
|
||||
case 0x10ec0235:
|
||||
case 0x10ec0255:
|
||||
alc_process_coef_fw(codec, coef0255);
|
||||
break;
|
||||
|
|
@ -1780,6 +1784,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
|
|||
};
|
||||
|
||||
switch (codec->core.vendor_id) {
|
||||
case 0x10ec0235:
|
||||
case 0x10ec0255:
|
||||
alc_process_coef_fw(codec, coef0255);
|
||||
break;
|
||||
|
|
@ -1881,6 +1886,7 @@ static void alc_determine_headset_type(struct hda_codec *codec)
|
|||
}
|
||||
|
||||
switch (codec->core.vendor_id) {
|
||||
case 0x10ec0235:
|
||||
case 0x10ec0255:
|
||||
alc_process_coef_fw(codec, coef0255);
|
||||
msleep(300);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user