All of lore.kernel.org
 help / color / mirror / Atom feed
* Headphone Mic and PA
@ 2015-10-19  9:53 Takashi Iwai
  2015-10-19 11:20 ` David Henningsson
  0 siblings, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2015-10-19  9:53 UTC (permalink / raw)
  To: David Henningsson; +Cc: alsa-devel

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Headphone Mic and PA
  2015-10-19  9:53 Headphone Mic and PA Takashi Iwai
@ 2015-10-19 11:20 ` David Henningsson
  2015-10-19 12:36   ` Takashi Iwai
  2015-10-19 16:37   ` Raymond Yau
  0 siblings, 2 replies; 6+ messages in thread
From: David Henningsson @ 2015-10-19 11:20 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel



On 2015-10-19 11:53, Takashi Iwai wrote:
> 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?

Yes. The "Headphone Mic Jack" indicates that the jack can be used to 
indicate either "Headphone" or "Mic". The additional "Headset Mic 
Phantom Jack" indicates that headset is a third usage for the jack and 
there is no hardware that can detect which one of them it is. So it 
looks correct to me.

Also the Dell E7250 is Ubuntu certified, but I don't think docking 
stations are part of that certification suite (at least not for Dell E7250).

I skimmed through the opensuse bug as well. Two notes:

  1) Here's a guide of how to generate a PA log, avoiding the autospawn 
problem: https://wiki.ubuntu.com/PulseAudio/Log

  2) There is a patch series in the pipeline [2] that Tanu has promised 
to review, that makes module-switch-on-port-available more aggressive w 
r t being able to reroute away from unavailable things. I suspect it 
would help here, but I'm not completely sure.

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

[2] http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23504

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Headphone Mic and PA
  2015-10-19 11:20 ` David Henningsson
@ 2015-10-19 12:36   ` Takashi Iwai
  2015-10-20 11:43     ` David Henningsson
  2015-10-19 16:37   ` Raymond Yau
  1 sibling, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2015-10-19 12:36 UTC (permalink / raw)
  To: David Henningsson; +Cc: alsa-devel

On Mon, 19 Oct 2015 13:20:21 +0200,
David Henningsson wrote:
> 
> 
> 
> On 2015-10-19 11:53, Takashi Iwai wrote:
> > 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?
> 
> Yes. The "Headphone Mic Jack" indicates that the jack can be used to 
> indicate either "Headphone" or "Mic".

Hm, OK, that was the trick.  But now I wonder whether this was a right
choice.  Maybe a more straightforward way (from user-space POV) would
have been to create two jack ctls (Headphone and Headphone Mic) and
notify both of them.

> The additional "Headset Mic 
> Phantom Jack" indicates that headset is a third usage for the jack and 
> there is no hardware that can detect which one of them it is. So it 
> looks correct to me.
> 
> Also the Dell E7250 is Ubuntu certified, but I don't think docking 
> stations are part of that certification suite (at least not for Dell E7250).
> 
> I skimmed through the opensuse bug as well. Two notes:
> 
>   1) Here's a guide of how to generate a PA log, avoiding the autospawn 
> problem: https://wiki.ubuntu.com/PulseAudio/Log
 
Yeah, but I didn't want to let user touching the config, as people
often forget to revert :)  But maybe it's better to mention it,
judging from the people's reaction.

>   2) There is a patch series in the pipeline [2] that Tanu has promised 
> to review, that makes module-switch-on-port-available more aggressive w 
> r t being able to reroute away from unavailable things. I suspect it 
> would help here, but I'm not completely sure.

The last unplug event in the log shows

D: [pulseaudio] module-alsa-card.c: Jack 'Dock Line Out Jack' is now unplugged
D: [pulseaudio] device-port.c: Setting port analog-output-lineout to status no
D: [pulseaudio] device-port.c: Setting port analog-output-speaker to status unknown

and no activation happened to analog-output-speaker.  So, yes, your
patchset might cure this.  But I wonder why this happens only with the
dock line-out and not with normal headphones...


Takashi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Headphone Mic and PA
  2015-10-19 11:20 ` David Henningsson
  2015-10-19 12:36   ` Takashi Iwai
@ 2015-10-19 16:37   ` Raymond Yau
  1 sibling, 0 replies; 6+ messages in thread
From: Raymond Yau @ 2015-10-19 16:37 UTC (permalink / raw)
  To: David Henningsson, gaznims; +Cc: Takashi Iwai, ALSA Development Mailing List

2015-10-19 下午7:20於 "David Henningsson" <david.henningsson@canonical.com>寫道:
>
>
>
> On 2015-10-19 11:53, Takashi Iwai wrote:
>>
>> 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?
>
>
> Yes. The "Headphone Mic Jack" indicates that the jack can be used to
indicate either "Headphone" or "Mic". The additional "Headset Mic Phantom
Jack" indicates that headset is a third usage for the jack and there is no
hardware that can detect which one of them it is. So it looks correct to me.
>
> Also the Dell E7250 is Ubuntu certified, but I don't think docking
stations are part of that certification suite (at least not for Dell E7250).
>
> I skimmed through the opensuse bug as well. Two notes:
>
>  1) Here's a guide of how to generate a PA log, avoiding the autospawn
problem: https://wiki.ubuntu.com/PulseAudio/Log
>
>  2) There is a patch series in the pipeline [2] that Tanu has promised to
review, that makes module-switch-on-port-available more aggressive w r t
being able to reroute away from unavailable things. I suspect it would help
here, but I'm not completely sure.

control.13 {
iface MIXER
name 'Capture Source'
value 'Internal Mic'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'Headphone Mic'
item.1 'Dock Mic'
item.2 'Headset Mic'
item.3 'Internal Mic'
}
}

Do alc_headset mode still work when there is dock mic ?

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=73bdd597823e2231dc882577dbbaf8df92fe1775

hda_nid_t mux_pin = spec->gen.imux_pins[spec->gen.cur_mux[0]];
hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];

int new_headset_mode;

if (!snd_hda_jack_detect(codec, hp_pin))
new_headset_mode = ALC_HEADSET_MODE_UNPLUGGED;
else if (mux_pin == spec->headset_mic_pin)
new_headset_mode = ALC_HEADSET_MODE_HEADSET;
else if (mux_pin == spec->headphone_mic_pin)
new_headset_mode = ALC_HEADSET_MODE_MIC;
else
new_headset_mode = ALC_HEADSET_MODE_HEADPHONE;

https://bugzilla.kernel.org/show_bug.cgi?id=104901

The other examples are Dell Alienware 18 which have mic jack, headphone
jack and headset jack :
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Headphone Mic and PA
  2015-10-19 12:36   ` Takashi Iwai
@ 2015-10-20 11:43     ` David Henningsson
  2015-10-21  9:11       ` Takashi Iwai
  0 siblings, 1 reply; 6+ messages in thread
From: David Henningsson @ 2015-10-20 11:43 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel



On 2015-10-19 14:36, Takashi Iwai wrote:
> On Mon, 19 Oct 2015 13:20:21 +0200,
> David Henningsson wrote:
>>
>>
>>
>> On 2015-10-19 11:53, Takashi Iwai wrote:
>>> 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?
>>
>> Yes. The "Headphone Mic Jack" indicates that the jack can be used to
>> indicate either "Headphone" or "Mic".
>
> Hm, OK, that was the trick.  But now I wonder whether this was a right
> choice.  Maybe a more straightforward way (from user-space POV) would
> have been to create two jack ctls (Headphone and Headphone Mic) and
> notify both of them.

Not so sure about that. Then you might get two events, and userspace 
needs to synchronise them, and then understand that it's about the same 
jack.

I think the current solution is better.

>> The additional "Headset Mic
>> Phantom Jack" indicates that headset is a third usage for the jack and
>> there is no hardware that can detect which one of them it is. So it
>> looks correct to me.
>>
>> Also the Dell E7250 is Ubuntu certified, but I don't think docking
>> stations are part of that certification suite (at least not for Dell E7250).
>>
>> I skimmed through the opensuse bug as well. Two notes:
>>
>>    1) Here's a guide of how to generate a PA log, avoiding the autospawn
>> problem: https://wiki.ubuntu.com/PulseAudio/Log
>
> Yeah, but I didn't want to let user touching the config, as people
> often forget to revert :)  But maybe it's better to mention it,
> judging from the people's reaction.
>
>>    2) There is a patch series in the pipeline [2] that Tanu has promised
>> to review, that makes module-switch-on-port-available more aggressive w
>> r t being able to reroute away from unavailable things. I suspect it
>> would help here, but I'm not completely sure.
>
> The last unplug event in the log shows
>
> D: [pulseaudio] module-alsa-card.c: Jack 'Dock Line Out Jack' is now unplugged
> D: [pulseaudio] device-port.c: Setting port analog-output-lineout to status no
> D: [pulseaudio] device-port.c: Setting port analog-output-speaker to status unknown
>
> and no activation happened to analog-output-speaker.  So, yes, your
> patchset might cure this.  But I wonder why this happens only with the
> dock line-out and not with normal headphones...

Could be just unlucky ordering perhaps? Does the just pushed patch help?

http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=91313e60a81e96ce976f24c522656c57b4ab94ca

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Headphone Mic and PA
  2015-10-20 11:43     ` David Henningsson
@ 2015-10-21  9:11       ` Takashi Iwai
  0 siblings, 0 replies; 6+ messages in thread
From: Takashi Iwai @ 2015-10-21  9:11 UTC (permalink / raw)
  To: David Henningsson; +Cc: alsa-devel

On Tue, 20 Oct 2015 13:43:56 +0200,
David Henningsson wrote:
> 
> 
> 
> >>    2) There is a patch series in the pipeline [2] that Tanu has promised
> >> to review, that makes module-switch-on-port-available more aggressive w
> >> r t being able to reroute away from unavailable things. I suspect it
> >> would help here, but I'm not completely sure.
> >
> > The last unplug event in the log shows
> >
> > D: [pulseaudio] module-alsa-card.c: Jack 'Dock Line Out Jack' is now unplugged
> > D: [pulseaudio] device-port.c: Setting port analog-output-lineout to status no
> > D: [pulseaudio] device-port.c: Setting port analog-output-speaker to status unknown
> >
> > and no activation happened to analog-output-speaker.  So, yes, your
> > patchset might cure this.  But I wonder why this happens only with the
> > dock line-out and not with normal headphones...
> 
> Could be just unlucky ordering perhaps? Does the just pushed patch help?
> 
> http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=91313e60a81e96ce976f24c522656c57b4ab94ca

That seems fixing the issue indeed!


Takashi

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-10-21  9:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-19  9:53 Headphone Mic and PA Takashi Iwai
2015-10-19 11:20 ` David Henningsson
2015-10-19 12:36   ` Takashi Iwai
2015-10-20 11:43     ` David Henningsson
2015-10-21  9:11       ` Takashi Iwai
2015-10-19 16:37   ` Raymond Yau

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.