On 07/27/2013 05:25 AM, Mark Brown wrote:
On Fri, Jul 26, 2013 at 04:13:40PM -0700, Felipe Tonello wrote:
On Fri, Jul 26, 2013 at 3:48 PM, Mark Brown broonie@kernel.org wrote:
What I'd expect to happen here is that for multi function jacks we create a control per function if the controls are valid.
Ok, so the idea is just to change the control to type integer instead of boolean, right? Because as you say, the user will be able to check the type of jack based on the status value, right?
It might be more idiomatic and more compatible with userspace to create multiple controls for the jack, there was some discussion of this in the past I think but I can't remember the result.
Yes. If there's only one function supported the current code is fine but for multiple functions it's going to discard useful information.
So, what do you suggest to do that? I'm not sure if I understand what you are saying. When you mean function, do you mean the SND_JACK_BTN_n or the the jack types, such as SND_JACK_HEADPHONE, and so on?
The jack types, the buttons definitely sohuld be going up as input events.
If a codec creates a jack type SND_JACK_HEADSET (= SND_JACK_HEADPHONE | SND_JACK_MICROPHONE). It should be created two controls, name + "Headphone Jack" and name + "Microphone Jack"? If so, what about the status to report? How to know which control to report?
The drivers report a bitmask for status.
I did that but I'm not happy with the control name. Usually drivers add jacks like: "Headset" for a headset, "Headphone" for a headphone and so on. I did the following: control name is jack name + (jack type) + Jack. If jack type == jack name, don't add (jack type) to the name.
Any suggestion how it should be?