On Tue, Oct 16, 2007 at 01:38:34PM +0200, Takashi Iwai wrote:
At Mon, 15 Oct 2007 16:34:21 -0400, Peter Skensved wrote:
On Mon, Oct 15, 2007 at 01:29:50PM +0200, Takashi Iwai wrote:
At Sun, 14 Oct 2007 22:53:03 -0400, Peter Skensved wrote:
Hi,
I've come across a problem with the 1.0.15rc3 alsa driver on my Lenovo 3000 N100 laptop using the auto mute feature - it appears to work backwards ! Plugging in the headphones unmutes the external speakers and unplugging the heaphones mutes them ...
Changing the if statement in line ~600 in patch_analog.c in ad1986a_update_hp to
if (!spec->jack_preset)
makes it work the intended way. ( spec->jack_present changes state _before_ the call to ad1986a_hp_automute )
Hmm, the code logic looks correct to me. If HP jack is present, the internal speaker should be muted. Otherwise it follows the state of HP jack (muted/unmuted, that acts as a master switch).
Well - in the default mode the jack is present and the internal speakers are permanently muted until I plug in a set of headphones no matter how I toggle the speaker mute in the mixer.
With headphones plugged in I can mute and unmute the internal speakers in alsa mixer
Surely the default cannot be that I have to carry a set of headphones with my laptop all the time ???!!???
Is jack_present set/reset correctly when HP jack is plugged/unplugged at all? Or, the pin NID is swapped, or any other reason?
I sprinkled some printk's in the driver : On entry to ad1986a_update_hp : plugging headphones into jack : spec->jack_present = 0 removing headphones from jack : spec->jack_present = 1
This implies rather that the jack detection itself is reversed from the standard. Could you try the patch below?
thanks,
Takashi
It works - peter