Bug 99931

Summary: aamix path always uses first DAC when aamix mixer can connect to more than one DAC
Product: Drivers Reporter: Martin Erik Werner (martinerikwerner)
Component: Sound(ALSA)Assignee: Jaroslav Kysela (perex)
Status: RESOLVED INVALID    
Severity: normal CC: superquad.vortex2, tiwai
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.0.0 Subsystem:
Regression: No Bisected commit-id:

Description Martin Erik Werner 2015-06-14 13:07:14 UTC
Reporting here as instructed in https://bugs.freedesktop.org/show_bug.cgi?id=90972#c16 which also contains alsa-info output etc.

I don't really know what it is I'm reporting, but I'm hoping the instruction I got warrants it. I'll happily provide more information if given instructions on how to obtain it.
Comment 1 Raymond 2015-06-14 15:58:41 UTC
when loopback mixing mode is enabled, both headphone and internal speaker are connectef to node 0x13 audio output which has speaker+lo playback volume through node 0x1c =audio selector and node 0x1b audio mixer


this mean that headphone playack volume control does not affect headphone any more

especially speaker+lo playback volume are turn off by pulseaudio , headphone does not get any signal from DAC



Node 0x0b [Pin Complex] wcaps 0x400581: Stereo
  Control: name="Headphone Jack", index=0, device=0
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x0421101f: [Jack] HP Out at Ext Right
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power states: 
  Power: setting=D0, actual=D0
  Connection: 3
     0x13 0x14 0x1c*

Node 0x0d [Pin Complex] wcaps 0x400501: Stereo
  Control: name="Speaker Phantom Jack", index=0, device=0
  Pincap 0x00010050: OUT EAPD Balanced
  EAPD 0x2: EAPD
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states: 
  Power: setting=D0, actual=D0
  Connection: 3
     0x13 0x14 0x1c*

Node 0x13 [Audio Output] wcaps 0xd0c45: Stereo Amp-Out R/L
  Control: name="Speaker+LO Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker+LO Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="92HD81B1X5 Analog", type="Audio", device=0
  Amp-Out caps: N/A
  Amp-Out vals:  [0x80 0x80]
  Converter: stream=8, channel=0
  Power states: 
  Power: setting=D0, actual=D0
  Delay: 13 samples
  Processing caps: benign=0, ncoeff=0
Node 0x14 [Audio Output] wcaps 0xd0c45: Stereo Amp-Out R/L
  Control: name="Headphone Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: N/A
  Amp-Out vals:  [0x5f 0x5f]
  Converter: stream=8, channel=0
  Power states: 
  Power: setting=D3, actual=D3
  Delay: 13 samples
  Processing caps: benign=0, ncoeff=0

Node 0x1b [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Control: name="Mic Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Line Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Line Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x17 0x17] [0x80 0x80] [0x80 0x80]
  Power states: 
  Power: setting=D0, actual=D0
  Connection: 6
     0x0c 0x0e 0x0f 0x13 0x14 0x0a
Node 0x1c [Audio Selector] wcaps 0x30050d: Stereo Amp-Out
  Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-Out vals:  [0x1f 0x1f]
  Power states: 
  Power: setting=D0, actual=D0
  Connection: 1
     0x1b
Comment 2 Takashi Iwai 2015-06-14 16:39:46 UTC
This is the designed behavior.  Only the primary path is used intentionally for aamix path.
Comment 3 Raymond 2015-06-14 23:27:18 UTC
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/Documentation/sound/alsa/HD-Audio-Controls.txt

if it is the designed behaviour , it should be document 

realtek codec don't have this behaviour since the aa mixer does not have any DAC input and aamixer can connect to all output jacks

the alternative solution is pulseaudio alway disable loopback mixing in analog-output.conf.common
Comment 4 Raymond 2015-06-14 23:33:38 UTC
but desktop user need line playback volume and mic playback

this mean pulseaudio need to distinguish notebook and desktop