[alsa-devel] questions about asoc jack detection

Mark Brown broonie at opensource.wolfsonmicro.com
Wed Apr 20 11:31:02 CEST 2011

On Wed, Apr 20, 2011 at 02:52:12PM +0800, Lu Guanqun wrote:

> I have a question wrt jack detection, suppose now I have internal
> speaker enabled and then headphone is inserted. According to the current
> jack code in asoc, the Headphone pin wil be enabled, but it does nothing
> to Internal Speaker. There is still sound coming out from speaker.

This is a policy question - depending on the use case the application
may wish to still play sound out of the speaker.  One obvious example
here is ringtones on phones.  If the user has been doing something like
listen to music on headphones but then takes the headphones off they'll
probably not hear anything that plays out of only the headphones so you
should play ringtones out of both outputs in order to ensure that they
are audible.

If you really want to you can add an invert to the hookup for a pin, but
it's not recommended unless there's some physical reason both can't be
enabled simultaneously.

> The possible solution is to let the application make the policy to
> switch the output source to Headphone, because the jack event can be
> observed. If we decide to let the userspace application make the policy,
> then why do we bother to enable the jack pin at the first place?

If we can detect the physical presence of the output transducer it's not
really a policy decision if it's worth enabling the audio path.

More information about the Alsa-devel mailing list