On Thu, Jan 20, 2011 at 11:17:08AM -0800, Stephen Warren wrote:
However, I wonder if that's the correct approach; should the plug detect logic only control the headphone output (i.e. only include the first array entry in jack_pins[] above), and leave it up to user-space whether to disable the speaker in this case, using a custom Speaker Function control created by the machine driver, as I see many other drivers expose?
You really should leave the headphone alone unless there's a reason the two can't be simultaneously active (eg, being wired in parallel to the same outputs or power constraints) but it won't break anything from an ASoC point of view. It will disable some use cases, though, the main one being that it won't be possible to play notifications to headphones and speaker simultaneously. This is often used for notifications on portable devices as the user may have inserted headphones during music playback but removed them for some reason, rendering tones played only through the headphones inaudible.
Do the jack reports make it up to user-space so that could be implemented?
The jacks appear in userspace as input devices.