the only way to test the headset mic is modify patch_realtek.c
the driver's pin fixup will add the missing pin and you don't need those user pin fixup anymore by remove patch=*.fw in alsa-base.conf
the driver disable auto mic selection when there is internal mic, headset mic and external mic after you add the headset mic pin
mux pin (capture source control) in alsamixer determine the role of the combo jack is a headset or headphone
the current logic still not handle the external mic correctly and default to headphone
if (!snd_hda_jack_detect(codec, hp_pin)) new_headset_mode = ALC_HEADSET_MODE_UNPLUGGED; else if (mux_pin == spec->headset_mic_pin) new_headset_mode = ALC_HEADSET_MODE_HEADSET; else if (mux_pin == spec->headphone_mic_pin) new_headset_mode = ALC_HEADSET_MODE_MIC; else new_headset_mode = ALC_HEADSET_MODE_HEADPHONE;
Sysfs Files !!-----------
/sys/class/sound/hwC0D0/init_pin_configs: 0x12 0x99a30140 0x14 0x90170110 0x15 0x0321101f 0x16 0x03211020 0x18 0x40030008 0x19 0x03a11030 0x1a 0x411111f0 0x1b 0x411111f0 0x1d 0x41000001 0x1e 0x411111f0 0x1f 0x411111f0
/sys/class/sound/hwC0D0/driver_pin_configs:
/sys/class/sound/hwC0D0/user_pin_configs: 0x12 0x99a30140 0x14 0x90170110 0x15 0x0321101f 0x16 0x411111f0 0x18 0x40030008 0x19 0x03a11030 0x1a 0x90170111 0x1b 0x411111f0 0x1d 0x41000001 0x1e 0x411111f0 0x1f 0x411111f0
the only way to test the headset mic is modify patch_realtek.c
the driver's pin fixup will add the missing pin and you don't need those user pin fixup anymore by remove patch=*.fw in alsa-base.conf
the driver disable auto mic selection when there is internal mic, headset mic and external mic after you add the headset mic pin
mux pin (capture source control) in alsamixer determine the role of the combo jack is a headset or headphone
the current logic still not handle the external mic correctly and default to headphone
if (!snd_hda_ jack_detect( codec, hp_pin)) MODE_UNPLUGGED; mic_pin) MODE_HEADSET; _mic_pin) MODE_MIC; MODE_HEADPHONE;
new_headset_mode = ALC_HEADSET_
else if (mux_pin == spec->headset_
new_headset_mode = ALC_HEADSET_
else if (mux_pin == spec->headphone
new_headset_mode = ALC_HEADSET_
else
new_headset_mode = ALC_HEADSET_
Sysfs Files !!-----------
/sys/class/ sound/hwC0D0/ init_pin_ configs:
0x12 0x99a30140
0x14 0x90170110
0x15 0x0321101f
0x16 0x03211020
0x18 0x40030008
0x19 0x03a11030
0x1a 0x411111f0
0x1b 0x411111f0
0x1d 0x41000001
0x1e 0x411111f0
0x1f 0x411111f0
/sys/class/ sound/hwC0D0/ driver_ pin_configs:
/sys/class/ sound/hwC0D0/ user_pin_ configs:
0x12 0x99a30140
0x14 0x90170110
0x15 0x0321101f
0x16 0x411111f0
0x18 0x40030008
0x19 0x03a11030
0x1a 0x90170111
0x1b 0x411111f0
0x1d 0x41000001
0x1e 0x411111f0
0x1f 0x411111f0