At Fri, 9 Aug 2013 17:39:47 +0100, Mark Brown wrote:
On Fri, Aug 09, 2013 at 03:52:04PM +0200, Takashi Iwai wrote:
Above all, the multiple indices don't work anyway with the snd_jack stuff in the current form. The index was introduced only for kjack, and for HD-audio, snd_jack is provided just for a compatibility reason, thus it doesn't matter much even if the multiple indices don't work with it.
That being said, before going further, we need to consider how to handle the input jack stuff with multiple indices.
What's the big problem with indexes and input (hopefully also extcon...) reporting?
No big problem, but we haven't defined it. Should the index be embedded in the name string or handled in a different way?
- snprintf(jack->name, sizeof(jack->name), "%s %s",
- snprintf(jack->name, sizeof(jack->name), "%s %s Jack", card->shortname, jack->id);
This breaks the compatibility with the existing code. You must not change the name of the existing input jack element. Some drivers create "Headphone" and some do "Headphone Jack", yes. It's bad, but too late to change.
We can probably do something cheap like just check if there's a "Jack" already in the name?
Yes, I thought of it, too. But there are some funky names like "hook_switch". Also, there is "Headphones", too.
So, IMO, the function should accept a special name for the input-jack for compatibility reason while creating standard names for kjack, or so...
Takashi