[alsa-devel] [PATCH v2 1/2] ALSA: jack: create jack kcontrols for every jack input device

David Henningsson david.henningsson at canonical.com
Thu Mar 26 07:42:14 CET 2015



On 2015-03-25 14:53, Jie, Yang wrote:
>
> Thank you for comprehensive summarizing, David.
> Can you help give more description as below?
>
> ~Keyon
>
>> -----Original Message-----
>> From: David Henningsson [mailto:david.henningsson at canonical.com]
>> Sent: Monday, March 23, 2015 7:51 PM
>> To: Tanu Kaskinen; Takashi Iwai
>> Cc: Jie, Yang; perex at perex.cz; broonie at kernel.org; alsa-devel at alsa-
>> project.org; Girdwood, Liam R; Liam Girdwood
>> Subject: Re: [PATCH v2 1/2] ALSA: jack: create jack kcontrols for every jack
>> input device
>>
>>
>>
>> On 2015-03-23 11:56, Tanu Kaskinen wrote:
>>> One thing that is unclear for me is that how are those jacks
>>> represented that support any of headsets/headphones/microphones, but
>>> don't provide information about which device type has been plugged in.
>>
>> For headphone or headset, independent switches:
>>
>>    * "Headphone Jack"
>>    * "Headset Mic Jack"
> [Keyon] here for the most common headset jack
> (SND_JACK_HEADPHONE | SND_JACK_MICROPHONE), we should create
> two independent kctls/switches--"Headphone Jack" + "Headset Mic Jack",
> right?
>
> so, is it possible that there is only "Mic Jack" in this case? I mean that
> only input(no output, no physical headphone/speaker jack) jack exist.
>
> If yes, then we may need change "Headset Mic Jack" to "Mic Jack"?

I'm not sure I understand your question - of course there are input only 
jacks, but they would then be SND_JACK_MICROPHONE only, and also 
labelled "Mic Jack". But that's not a headset jack, that's a microphone 
jack.

>> For headphone or headset, one hw switch only:
> [Keyon] I am sorry I am not familiar with the jack HW circuit. What "one
> hw switch only" here means? Does it means that -- for headset Jack, the
> status(connected/disconnected) of HP pin is always exactly same with
> that of Mic pin?

There is only one jack detection input from HW. Regardless of whether 
you plug in headphone or a headset, the HW switch would detect "plugged 
in". When the jack is unplugged, the HW switch would detect "unplugged".

The HW cannot tell us whether you plugged in a headphone or headset.

>>    * "Headphone Jack"
>>    * "Headset Mic Phantom Jack"
> [Keyon] for Headset of this type, do we need create only "Headset Mic
> Phantom Jack" kctl, or "Headphone Jack" kctl is also needed?

We need both kctls.

>> Headphone or mic, one hw switch:
> [Keyon]I am fresh about this kind of hw jack, it should use different
> segment of the plug, seems we don't need check the actual connected
> status at the jack creation stage, just creating "Headphone Mic Jack"
> should works, right?

It is not very common. It was used on some Asus netbooks a while ago. 
But yes, we should just create a "Headphone Mic Jack".

>>
>>    * "Headphone Mic Jack"
>>
>> Headphone, headset, or mic, one hw switch only:
> [Keyon] how many kctls should we create for this?
>>
>>    * "Headphone Mic Jack"
>>    * "Headset Mic Phantom Jack"

Same as today, two: "Headphone Mic Jack" and "Headset Mic Phantom Jack".

>> Headphone, headset, or mic, one switch for hp/mic and the other for the
>> headset mic:
> [Keyon] I can't imagine how this works, it's too messy for me. :(
>>
>>    * "Headphone Mic Jack"
>>    * "Headset Mic Jack"

Nothing plugged in:
   "Headphone Mic Jack" = false, "Headset Mic Jack" = false
Headphones plugged in:
   "Headphone Mic Jack" = true, "Headset Mic Jack" = false
Headset plugged in:
   "Headphone Mic Jack" = true, "Headset Mic Jack" = true
Mic plugged in:
   "Headphone Mic Jack" = true, "Headset Mic Jack" = false

As you can see, "Headphones" and "Mic" results in the same output, hence 
userspace needs to ask the user if (s)he plugged in a headphone or mic.

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


More information about the Alsa-devel mailing list