[alsa-devel] HDA intel, wired headset w/mic, jack mic detect

Raymond Yau superquad.vortex2 at gmail.com
Thu Mar 1 00:43:53 CET 2012


2012/3/1, Kevin Hilman <khilman at ti.com>:
> Raymond Yau <superquad.vortex2 at gmail.com> writes:
>
>> Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector
>> instead of TRS (Tip, ring, sleeve) connector ?
>
> Yes.  It's TRRS.
>
> But below, I tried with a normal stero headset (no mic) which has a TRS
> connector too.
>
>> You can use David's hda-jack-sense-test to find out any jack sense at
>> the node of External mic when you plug the headset , if not , you may
>> need to modify unsol event of  headphone to select the external mic ,
>> internal mic.
>
> Here are the results of hda-jack-sense-test
>
> Nothing plugged in:
>
> # hda-jack-sense-test -a
> Pin 0x09 (Green HP Out): present = No
> Pin 0x0a (Not connected): present = No
> Pin 0x0b (Internal Speaker): present = No
> Pin 0x0c (Not connected): present = No
> Pin 0x0d (Internal Mic): present = No
> Pin 0x0e (Not connected): present = No
> Pin 0x0f (Not connected): present = No
> Pin 0x10 (Not connected): present = No
> Pin 0x12 (Not connected): present = No
> Pin 0x15 (Not connected): present = No
>
> With regular stereo headphones with (*no* mic, TRS):
>
> # hda-jack-sense-test -a
> Pin 0x09 (Green HP Out): present = Yes
> Pin 0x0a (Not connected): present = No
> Pin 0x0b (Internal Speaker): present = No
> Pin 0x0c (Not connected): present = No
> Pin 0x0d (Internal Mic): present = No
> Pin 0x0e (Not connected): present = No
> Pin 0x0f (Not connected): present = No
> Pin 0x10 (Not connected): present = No
> Pin 0x12 (Not connected): present = No
> Pin 0x15 (Not connected): present = No
>
> Finally, plugging the headset w/mic (TRRS):
>
> root at eze:~# hda-jack-sense-test -a
> Pin 0x09 (Green HP Out): present = Yes
> Pin 0x0a (Not connected): present = No
> Pin 0x0b (Internal Speaker): present = No
> Pin 0x0c (Not connected): present = No
> Pin 0x0d (Internal Mic): present = No
> Pin 0x0e (Not connected): present = No
> Pin 0x0f (Not connected): present = No
> Pin 0x10 (Not connected): present = No
> Pin 0x12 (Not connected): present = No
> Pin 0x15 (Not connected): present = No
>
> As you can see, there's no detected difference between the TRS and TRRS
> headsets, which is the root of the problem.

can you post the output of alsa-info.sh ?

In the codec info, do you find  Misc bit of pin defaults of the node
[jack] Mic at Ext is set ? (i.e. Misc = NO_PRESENCE ) ?

you need to add the mic select code to the unsolicited event of hp
automute speaker

    present =  snd_hda_jack_detect(codec, 0x9) ;
    if (present)
          select ext mic
   else
          select int mic


>
> Since this is a MacBookAir, it dual-boots OSX, and the detection works
> just fine using the same headset under OSX.


More information about the Alsa-devel mailing list