Bug 199029

Summary: Dell Precision 7520: Dock headphones is detected as 'Line Out', 'Master' volume control doesn't change headphones volume
Product: Drivers Reporter: Dmitry Nezhevenko (dion)
Component: Sound(ALSA)Assignee: Jaroslav Kysela (perex)
Status: RESOLVED CODE_FIX    
Severity: normal CC: tiwai
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.15.7 Subsystem:
Regression: No Bisected commit-id:
Attachments: alsa-info
dmesg
Fix patch

Description Dmitry Nezhevenko 2018-03-06 10:22:24 UTC
Created attachment 274583 [details]
alsa-info

Hi,

I'm using Dell Precision 7520 laptop with 'E-Port Plus' replicator and found that I can't adjust headphones volume using 'Master' channel in alsamixer. Headphones are connected to Dock station headphones output (there is headphones icon on it, so it's definitely not line out).

Changing 'Master' volume in alsamixer has no effect:
1. it's possible to mute by muting Master
2. 0-100 values results same volume

At the same time it's still possible to adjust headphones volume using 'PCM' but it pretty looks that whole userspace assumes that 'Master' changes all outputs.

PS. It's new install, so I don't know is it regression or not.

snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC3254: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:line
snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=1 (0x14/0x0/0x0/0x0/0x0)
snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
snd_hda_codec_realtek hdaudioC0D0:    inputs:
snd_hda_codec_realtek hdaudioC0D0:      Dock Mic=0x18
snd_hda_codec_realtek hdaudioC0D0:      Headset Mic=0x19
snd_hda_codec_realtek hdaudioC0D0:      Headphone Mic=0x1a
snd_hda_codec_realtek hdaudioC0D0:      Internal Mic=0x12
Comment 1 Dmitry Nezhevenko 2018-03-06 10:22:45 UTC
Created attachment 274585 [details]
dmesg
Comment 2 Takashi Iwai 2018-03-06 11:19:28 UTC
Aha, this codec has the third DAC and it's connected without volume amplifier (but only the mute switch).  And the codec driver assigns the line-out via this route, likely for achieving the individual streams as much as possible.

The patch below should work around it.  It simply disables the route to DAC3.
Please give it a try.
Comment 3 Takashi Iwai 2018-03-06 11:19:52 UTC
Created attachment 274587 [details]
Fix patch
Comment 4 Dmitry Nezhevenko 2018-03-06 12:52:04 UTC
Hi,

Thanks a lot! It works.
Comment 5 Dmitry Nezhevenko 2018-03-16 09:33:41 UTC
It looks like attached patch landed to kernel 4.15.10