I have applied the patch against the mainline kernel 4.2.0-rc5. I have created the file /etc/modprobe.d/alsa-base.conf and added this
line and rebooted.
options snd_hda_intel model=,asus-headset
Works
Subwoofer Plugging and unplugging 3,5mm jack: PA switches from speakers to
headphones and from internal microphone to headset microphone.
Playing music on speakers Playing music on headset
Does not work
Microphone: My voice by the headset is not getting to PA. When playing music the VU meters of the Headphones (= good) and the
Microphone (= not good) in PA show both the music playing.
Please try alc668_asus_dell_alienware.patch
1) add debug statement to show "Mic 0x1b plugged" or "Internal Mic selected" in snd_hda_gen_mic_autoswitch()
2) show mux_pin before and after calling snd_hda_gen_mic_autoswitch() in alc_update_headset_mode()
3) change codec_dbg() related to headset mode to codec_info()
4) add dell-alienware model to demonstrate the usage of headset jack
new_headset_mode alway change to ALC_HEADSET_MODE_HEADSET when hp_pin is plugged
if (!snd_hda_jack_detect(codec, hp_pin)) new_headset_mode = ALC_HEADSET_MODE_UNPLUGGED; + else if (codec->core.vendor_id == 0x10ec0668 && + spec->gen.hs_mic_use_hp_sense) + new_headset_mode = ALC_HEADSET_MODE_HEADSET; else if (mux_pin == spec->headset_mic_pin) new_headset_mode = ALC_HEADSET_MODE_HEADSET; else if (mux_pin == spec->headphone_mic_pin)
5) change the "Headphone Playback Volume" and "Headphone Playback Switch" to "Headset Playback Volume" and "Headset Playback Switch" for those combo jack which support headset only
Headphone Jack and Headset Mic Jack kctls should return same value at any time and this mean that it won't support headphone As internal mic is only connected to audio input node 0x07 and driver use dynamic ADC switching , headset mic use audio input node 0x08
The stream tag of Converter of one of Audio Output (0x07/0x08) is non zero when the connected mic is selected
Converter: stream=0, channel=0 Can you post the output of alsa-info.sh while recording from headset mic with dump_coef =1 which dump the coeffs in vendor defined widget node 0x20 ?
https://bugzilla.kernel.org/show_bug.cgi?id=87771#c17 Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=197
Please check the system log
a) "mic 0x1b plugged" and "Internal Mic select" when you plug and unplug headset
b) whether the driver set your headset to CITA (IPhone) or OMTP (Nokia)
case 0x10ec0668: alc_write_coef_idx(codec, 0x11, 0x0001); alc_write_coef_idx(codec, 0xb7, 0x802b); alc_write_coef_idx(codec, 0x15, 0x0d60); alc_write_coef_idx(codec, 0xc3, 0x0c00); msleep(300); val = alc_read_coef_idx(codec, 0xbe); is_ctia = (val & 0x1c02) == 0x1c02; break; }
snd_printdd("Headset jack detected iPhone-style headset: %s\n", is_ctia ? "yes" : "no"); spec->current_headset_type = is_ctia ? ALC_HEADSET_TYPE_CTIA : ALC_HEADSET_TYPE_OMTP;