Hi David,
I'm currently checking the bug report regarding PA, and this looks like an issue with "Headphone Mic" jack control.
The reported problem is that PA doesn't react properly when both HP and dock line-out jacks are plugged and line-out is unplugged. The machine in question is Dell E7250, and I see that it has only "Headphone Mic Jack" kctl without "Headphone Jack" kctl. Is this the intentional behavior?
I see the code in hda_jack.c:
int snd_hda_jack_add_kctls(struct hda_codec *codec, const struct auto_pin_cfg *cfg) { const hda_nid_t *p; int i, err;
for (i = 0; i < cfg->num_inputs; i++) { /* If we have headphone mics; make sure they get the right name before grabbed by output pins */ if (cfg->inputs[i].is_headphone_mic) { if (auto_cfg_hp_outs(cfg) == 1) err = add_jack_kctl(codec, auto_cfg_hp_pins(cfg)[0], cfg, "Headphone Mic"); else err = add_jack_kctl(codec, cfg->inputs[i].pin, cfg, "Headphone Mic"); } else err = add_jack_kctl(codec, cfg->inputs[i].pin, cfg, NULL);
So, the driver seems doing what it was written. Meanwhile, the headphone mic comes from the quirk:
[ALC293_FIXUP_DELL1_MIC_NO_PRESENCE] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) { { 0x18, 0x01a1913d }, /* use as headphone mic, without its own jack detect */ { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */ { } }, .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE },
and this appears as if it were supposed to be a phantom jack.
The alsa-info output is found in the bugzilla https://bugzilla.suse.com/show_bug.cgi?id=948979
thanks,
Takashi