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

Jie, Yang yang.jie at intel.com
Fri Mar 27 10:11:11 CET 2015


> -----Original Message-----
> From: David Henningsson [mailto:david.henningsson at canonical.com]
> Sent: Friday, March 27, 2015 4:01 PM
> To: Jie, Yang; Tanu Kaskinen; Takashi Iwai
> Cc: 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-27 08:45, Jie, Yang wrote:
> >> -----Original Message-----
> >> From: David Henningsson [mailto:david.henningsson at canonical.com]
> >> Sent: Friday, March 27, 2015 2:50 PM
> >> To: Jie, Yang; Tanu Kaskinen; Takashi Iwai
> >> Cc: 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-26 13:43, Jie, Yang wrote:
> >>>
> >>> Sorry, Correct a typo(removing line "create "Mic Jack" kctl;" in
> >>> default case)
> >>
> >> It looks like your code can be simplified as:
> > [Keyon] thanks, I will try simplify them.
> >>
> >> switch (type | SND_JACK_HEADSET) {
> >> 	case SND_JACK_HEADSET:
> >> 		create "Headset Mic Jack" kctl;
> >> 		/* fall through */
> >> 	case SND_JACK_MICROPHONE:
> >> 	case SND_JACK_HEADPHONE:
> >> 		create format("%s Jack", id) kctl;
> > [Keyon] I don't want to fill "id" to kctl name, because sometimes it
> > can be string which can't be understood by PA, such as:
> >
> > soc/intel/mfld_machine.c:       ret_val = snd_soc_card_jack_new(runtime-
> >card,
> > soc/intel/mfld_machine.c-                       "Intel(R) MID Audio Jack",
> SND_JACK_HEADSET |
> > soc/intel/mfld_machine.c-                       SND_JACK_BTN_0 |
> SND_JACK_BTN_1, &mfld_jack,
> >
> > soc/omap/ams-delta.c:   ret = snd_soc_card_jack_new(card,
> "hook_switch", SND_JACK_HEADSET,
> > soc/omap/ams-delta.c-                               &ams_delta_hook_switch, NULL, 0);
> 
> Ok, good point. It's a matter of different conventions between ASoC and
> HDA. In ASoC, naming is wild west. In HDA, naming is (mostly) consistent and
> we depend on the exact naming for userspace to know exactly how the jack
> functions.
> 
> Another example is HDMI/DisplayPort, where the hw often supports several
> ports and we need to know which jack belongs to which PCM device, and we
> use the name of the jack to determine that.
> 
> I would very much prefer that all the ASoC jack names (and mixer control
> names!) would be fixed up to be consistent to the extent that makes sense,
> but the ASoC people haven't really agreed to do that, but instead prefer to
> use a large database of UCM files. :-( And seen from a UCM context, that the
> ASoC jacks are labelled terribly inconsistent, isn't that big of a deal given that
> UCM will specify the jack name anyhow.
[Keyon] that's the bad status. :(
Maybe we can just make HDA jack kctls works and leave not standard name
soc jack kctls invisible for PA?

> 
> >> }
> >>
> >> ...that way, prefixes such as "Front Headphone Jack" are preserved too,
> > [Keyon] if PA can recognize "Front Headphone Jack" and "Rear Headphone
> Jack", then I
> > prefer to add a determine here:
> >
> > 	if (!strcmp(id, "Front Headphone Jack") || !strcmp(id, "Rear
> Headphone Jack"))
> > 		create format("%s Jack", id) kctl;
> 
> This will not scale, there are too many variants.
> 
> --
> David Henningsson, Canonical Ltd.
> https://launchpad.net/~diwic


More information about the Alsa-devel mailing list