[alsa-devel] [ALC668]: Asus N751JK - mic selection not working

Raymond Yau superquad.vortex2 at gmail.com
Thu Aug 6 08:03:23 CEST 2015


>
> 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;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: alc668_asus_dell_alienware.patch
Type: text/x-patch
Size: 15551 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20150806/b20e41e0/attachment.bin>


More information about the Alsa-devel mailing list