> > > Actually, it works fine in Skype when using "AD1989B Analog (hw: 0,2)". I > > > was confused because I changed only "Speakers" to that device and tried > > > making a test sound. That did not work, apparently test sound goes to > > > whatever "Ringing" is set to. But when making actual calls, it works as > > > expected and I can take advantage of the Independent HP feature. > > > > Hm, there should be nothing to touch the indep-HP mixer control from > > PCM, so I have no idea why it went wrong. > > > > BTW, I guess we have still an issue regarding indep HP. When it's ON, > > should the auto-mute be disabled, no? > > Although one can disable the automute manually, it'd be maybe more > > user-friendly if the driver does it by itself. > > > > The patch is below, already merged in test/hda-gen-parser branch (and > test/hda-migrate and master branch, too), as usual. > Does it mean that the value of the "front headphone jack" kcontrol is no longer updated when the independent headphone is switch on ? > > --- > From: Takashi Iwai <tiwai at suse.de> > Subject: [PATCH] ALSA: hda - Disable HP auto-mute during independent HP mode > > Both the HP auto-mute and the independent HP mode conflict with each > other. Make HP auto-mute disabled (only for the affected HP jack) > during the driver is in HP independent mode. > > Signed-off-by: Takashi Iwai <tiwai at suse.de> > --- > sound/pci/hda/hda_generic.c | 19 ++++++++++++++++--- > 1 file changed, 16 insertions(+), 3 deletions(-) > > diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c > index 63d12ef..258fb5e 100644 > --- a/sound/pci/hda/hda_generic.c > +++ b/sound/pci/hda/hda_generic.c > @@ -1889,6 +1889,13 @@ static int indep_hp_put(struct snd_kcontrol *kcontrol, > *dacp = 0; > else > *dacp = spec->alt_dac_nid; > + > + /* update HP auto-mute state too */ > + if (spec->hp_automute_hook) > + spec->hp_automute_hook(codec, NULL); > + else > + snd_hda_gen_hp_automute(codec, NULL); > + > ret = 1; > } > unlock: > @@ -3467,10 +3474,16 @@ static void call_update_outputs(struct hda_codec *codec) > void snd_hda_gen_hp_automute(struct hda_codec *codec, struct hda_jack_tbl *jack) > { > struct hda_gen_spec *spec = codec->spec; > + hda_nid_t *pins = spec->autocfg.hp_pins; > + int num_pins = ARRAY_SIZE(spec->autocfg.hp_pins); > + > + /* No detection for the first HP jack during indep-HP mode */ > + if (spec->indep_hp_enabled) { > + pins++; > + num_pins--; > + } > > - spec->hp_jack_present = > - detect_jacks(codec, ARRAY_SIZE(spec->autocfg.hp_pins), > - spec->autocfg.hp_pins); > + spec->hp_jack_present = detect_jacks(codec, num_pins, pins); > if (!spec->detect_hp || (!spec->automute_speaker && !spec->automute_lo)) > return; > call_update_outputs(codec); > -- > 1.8.1.1 > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20130122/a1bc047b/attachment.html>