DELL XPS M1210 STAC9221 Dual Headphone jacks not working

Bug #1509950 reported by Max Wachtel on 2015-10-26
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ALSA driver
Unknown
Medium
alsa-driver (Ubuntu)
Medium
Unassigned

Bug Description

Ubuntu 15.10 after latest update headphones stopped working. When I ran alsamixer in the terminal, I saw they were muted. after unmuting them I pressed F6 and saw the soundcard id, then pressed esc and esc to exit alsamixer then entered sudo alsactl store Intel After rebooting they worked!

ProblemType: Bug
DistroRelease: Ubuntu 15.10
Package: pulseaudio 1:6.0-0ubuntu13
ProcVersionSignature: Ubuntu 4.2.0-16.19-generic 4.2.3
Uname: Linux 4.2.0-16-generic x86_64
ApportVersion: 2.19.1-0ubuntu3
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: max 1272 F.... pulseaudio
CurrentDesktop: Unity
Date: Mon Oct 26 02:15:01 2015
InstallationDate: Installed on 2015-10-20 (5 days ago)
InstallationMedia: Ubuntu 15.10 "Wily Werewolf" - Release amd64 (20151019)
SourcePackage: pulseaudio
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 09/11/2008
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A09
dmi.board.vendor: Dell Inc.
dmi.chassis.type: 8
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvrA09:bd09/11/2008:svnDellInc.:pnMXC062:pvr:rvnDellInc.:rn:rvr:cvnDellInc.:ct8:cvr:
dmi.product.name: MXC062
dmi.sys.vendor: Dell Inc.

Max Wachtel (maxpro4u) wrote :
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in pulseaudio (Ubuntu):
status: New → Confirmed
Raymond (superquad-vortex2) wrote :

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda/patch_sigmatel.c?id=76c08828709129bdce6c6a325e0342ba73f2618f

ysfs Files
!!-----------

/sys/class/sound/hwC0D0/init_pin_configs:
0x0a 0x0221101f
0x0b 0x40f000f0
0x0c 0x02811030
0x0d 0x90170110
0x0e 0x40f000f1
0x0f 0x02011020
0x10 0x034410a0
0x11 0x40f000f2
0x15 0x40f000f3
0x1b 0x40f000f4

/sys/class/sound/hwC0D0/driver_pin_configs:
0x0a 0x02211211
0x0b 0x408103ff
0x0c 0x02a1123e
0x0d 0x90100310
0x0e 0x408003f1
0x0f 0x0221121f
0x10 0x03451340
0x11 0x40c003f2
0x15 0x508003f3
0x1b 0x405003f4

/sys/class/sound/hwC0D0/user_pin_configs:

/sys/class/sound/hwC0D0/init_verbs

[ 12.280460] snd_hda_codec_idt hdaudioC0D0: autoconfig for STAC9221 A1: line_outs=1 (0xa/0x0/0x0/0x0/0x0) type:line
[ 12.280465] snd_hda_codec_idt hdaudioC0D0: speaker_outs=1 (0xd/0x0/0x0/0x0/0x0)
[ 12.280469] snd_hda_codec_idt hdaudioC0D0: hp_outs=1 (0xf/0x0/0x0/0x0/0x0)
[ 12.280472] snd_hda_codec_idt hdaudioC0D0: mono: mono_out=0x0
[ 12.280475] snd_hda_codec_idt hdaudioC0D0: dig-out=0x10/0x0
[ 12.280477] snd_hda_codec_idt hdaudioC0D0: inputs:
[ 12.280481] snd_hda_codec_idt hdaudioC0D0: Mic=0xc

Codec: SigmaTel STAC9221 A1
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x83847680
Subsystem Id: 0x102801d7
Revision Id: 0x103601

how many jacks ?

it is strange that only mic and your pci ssid seem same as DELL XPS m1210

Raymond (superquad-vortex2) wrote :

do your computer support 5.1 since there are three jacks at same location ?

ode 0x0a [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x0221101f: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0x40: OUT VREF_HIZ
  Unsolicited: tag=02, enabled=1
  Connection: 1
     0x02

Node 0x0c [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x00001737: IN OUT Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x02811030: [Jack] Line In at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x3, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=03, enabled=1
  Connection: 1
     0x03
Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Connection: 1
     0x02

Node 0x0f [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x00000037: IN OUT Detect Trigger ImpSense
  Pin Default 0x02011020: [Jack] Line Out at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=01, enabled=1
  Connection: 1
     0x05

Changed in pulseaudio (Ubuntu):
importance: Undecided → Medium
Max Wachtel (maxpro4u) wrote :

I have 3 jacks on my dell xps m1210

Raymond (superquad-vortex2) wrote :

ports:
  analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
   properties:
    device.icon_name = "audio-speakers"
  analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: no)
   properties:
    device.icon_name = "audio-headphones"
 active port: <analog-output-speaker>

control.17 {
  iface CARD
  name 'Front Headphone Jack'
  value false
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }
 control.18 {
  iface CARD
  name 'Front Headphone Jack'
  index 1
  value false
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }

try

hdajacksensetest -a

when you plug headphone and unplug

Changed in pulseaudio (Ubuntu):
status: Confirmed → Incomplete
Raymond (superquad-vortex2) wrote :

Node 0x02 [Audio Output] wcaps 0xd0c05: 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="STAC9221 A1 Analog", type="Audio", device=0
  Amp-Out caps: N/A
  Amp-Out vals: [0x79 0x79]
  Converter: stream=5, channel=0
  Power states:
  Power: setting=D0, actual=D0
  Delay: 13 samples
Node 0x03 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
  Amp-Out caps: N/A
  Amp-Out vals: [0xff 0xff]
  Converter: stream=0, channel=0
  Power states:
  Power: setting=D0, actual=D0
  Delay: 13 samples
Node 0x04 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
  Amp-Out caps: N/A
  Amp-Out vals: [0xff 0xff]
  Converter: stream=0, channel=0
  Power states:
  Power: setting=D0, actual=D0
  Delay: 13 samples
Node 0x05 [Audio Output] wcaps 0xd0c05: 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: [0x80 0x80]
  Converter: stream=5, channel=0
  Power states:
  Power: setting=D0, actual=D0
  Delay: 13 samples

if there are two headphone jacks, there should be two headphone playback volume control ans switches

speaker playback volume and center/lfe volume when line in is retasked as output to support 5.1 as your codec are 8 channels

Raymond (superquad-vortex2) wrote :

https://bugzilla.kernel.org/enter_bug.cgi?product=Drivers

alsa sound

you have to file upstream bug report if it is a regression since your dell m1210 was supported bythe above patch

affects: pulseaudio (Ubuntu) → alsa-driver (Ubuntu)
Raymond (superquad-vortex2) wrote :

seem spec->dac_nids not initialised

 spec->adc_nids = stac922x_adc_nids;
 spec->mux_nids = stac922x_mux_nids;
 spec->num_muxes = ARRAY_SIZE(stac922x_mux_nids);
 spec->num_adcs = ARRAY_SIZE(stac922x_adc_nids);
 spec->num_dmics = 0;
 spec->num_pwrs = 0;

 spec->num_caps = STAC922X_NUM_CAPS;
 spec->capvols = stac922x_capvols;
 spec->capsws = stac922x_capsws;

 spec->multiout.dac_nids = spec->dac_nids;

 snd_hda_add_verbs(codec, stac922x_core_init);

 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);

 err = stac92xx_parse_auto_config(codec);

Max Wachtel (maxpro4u) wrote :

both headphone jacks work on LTS 14.04.3

Raymond (superquad-vortex2) wrote :

you have to open bug report or send email to the author since the driver change node 0x0f line out pin to HP pins by fixup so speaker+lo should not be created

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda/patch_sigmatel.c?id=0a4278464eba4bf98c0d6304c62a1116553125d3

 /*
     STAC 9221 A1 pin configs for
     102801D7 (Dell XPS M1210)
 */
-static const unsigned int dell_922x_m82_pin_configs[10] = {
- 0x02211211, 0x408103ff, 0x02a1123e, 0x90100310,
- 0x408003f1, 0x0221121f, 0x03451340, 0x40c003f2,
- 0x508003f3, 0x405003f4,
+static const struct hda_pintbl dell_922x_m82_pin_configs[] = {
+ { 0x0a, 0x02211211 },
+ { 0x0b, 0x408103ff },
+ { 0x0c, 0x02a1123e },
+ { 0x0d, 0x90100310 },
+ { 0x0e, 0x408003f1 },
+ { 0x0f, 0x0221121f },
+ { 0x10, 0x03451340 },
+ { 0x11, 0x40c003f2 },
+ { 0x15, 0x508003f3 },
+ { 0x1b, 0x405003f4 },
+ {}
 };

Raymond (superquad-vortex2) wrote :

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

ALSA: hda - Fix "PCM" name being used on one DAC when there are two DACs

your HP node 0x0a and speaker node 0xd can only connected to node 0x2

this mean you should have speaker+HP playback volume control

Raymond (superquad-vortex2) wrote :

http://git.alsa-project.org/?p=alsa-tools.git;a=tree;f=hdajacksensetest;hb=HEAD

only pincap of node 0x0a support HP but pincap of node 0x0f dose not support HP

can you confirm that the HP jack the the midde is which node 0x0a or 0x0f by

./hdajacksensetest -a

Raymond (superquad-vortex2) wrote :
summary: - Headphone jack not working
+ DELL XPS M1210 STAC9221 Dual Headphone jacks not working
Max Wachtel (maxpro4u) wrote :

If I plug in the left jack an audio extension cord and then plug in my headphones in the center jack, they work. Also this works on todays daily build of 16.04. Headphone jacks work fine on 14.04 LTS.

Max Wachtel (maxpro4u) wrote :

I think it is a kernel issue as the headphones worked fine until I updated 15.10.

Raymond (superquad-vortex2) wrote :

you need to file upstream bug report at kenerl bugzilla and pulseaudio bug report

it need driver to create "Speaker+Headphone Playback Volume" control when node 0xa and node 0xd can only be connected to node 0x02

Node 0x0a [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x0221101f: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0x40: OUT VREF_HIZ
  Unsolicited: tag=02, enabled=1
  Connection: 1
     0x02

Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Connection: 1
     0x02

Raymond (superquad-vortex2) wrote :

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

the workaround is retask HP to line out to get (Speaker+LO" , the above patch is limited to two DAC codecs but your codecs have four DAC

Raymond (superquad-vortex2) wrote :

the critial point is node 0xf lack HP amp , only node 0xA has pincap HP

Node 0x0f [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x00000037: IN OUT Detect Trigger ImpSense
  Pin Default 0x02011020: [Jack] Line Out at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=01, enabled=1
  Connection: 1
     0x05

Raymond (superquad-vortex2) wrote :

you also need pulseaudio fix similar to the following but using "Speaker + HP"

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

Max Wachtel (maxpro4u) wrote :

I created an account at kernel bugzilla but I am not sure what product heading I should use, driver or platform specific/hardware.

when I plug in my headphones, they do not work. This happens with the 4 kernel on ubuntu, arch, fedora. Ubuntu 14.04 lts is fine and so is fedora 22. I noticed if I plug in my audio extension cord in the left jack and plug my headphones in the middle jack, they work(ubuntu 15.10+16.04,fedora 23 and arch).

You have to fix the driver first if HP and speaker must share volume control

https://bugzilla.kernel.org/enter_bug.cgi?product=Drivers

Sound(ALSA)

Node 0x02 [Audio Output] wcaps 0xd0c05: 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="STAC9221 A1 Analog", type="Audio", device=0
  Amp-Out caps: N/A
  Amp-Out vals: [0x79 0x79]
  Converter: stream=5, channel=0
  Power states:
  Power: setting=D0, actual=D0
  Delay: 13 samples

Node 0x0a [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x0221101f: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0x40: OUT VREF_HIZ
  Unsolicited: tag=02, enabled=1
  Connection: 1
     0x02

Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Connection: 1
     0x02

Node 0x0f [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x00000037: IN OUT Detect Trigger ImpSense
  Pin Default 0x02011020: [Jack] Line Out at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=01, enabled=1
  Connection: 1
     0x05

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/plain/sound/pci/hda/hda_generic.c

case AUTO_PIN_HP_OUT:
  /* if the primary channel vol/mute is shared with spk volume,
   * don't name it as Headphone
   */
  if (!ch && cfg->speaker_outs &&
      !path_has_mixer(codec, spec->speaker_paths[0], ctl_type))
- break;
+ return "Speaker+HP";
  /* for multi-io case, only the primary out */
  if (ch && spec->multi_ios)
   break;
  *index = ch;
  return "Headphone";

You also need to add "Speaker+HP" to slaves of virtual master

After the driver rename the shared volume control"Speaker+HP" , you need to change pulseaudio conf to avoid headphone mute the shared volume control similar to

http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa/mixer/paths?id=aec811798cd883a454b9b5cd82c77831906bbd2d

Changed in alsa-driver:
importance: Unknown → Medium
status: Unknown → Confirmed

==> Best config: lo_type=2, wired=1, mio=1
multi_outs = a/f/0/0 : 2/5/0/0 (type HP)
  out path: depth=2 '02:0a'
  out path: depth=2 '05:0f'
spk_outs = d/0/0/0 : 2/0/0/0
  spk path: depth=2 '02:0d'

as the driver create surround playback volume for the line out jack

it seem that the driver create incorrect headphone jack kctl

the alternative workaround is to change two output jacks to line out instead of headphone by hdajackretask

pulseaudio cannot handle Front Headphone jack with index 1

control.17 {
  iface CARD
  name 'Front Headphone Jack'
  value false
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }
 control.18 {
  iface CARD
  name 'Front Headphone Jack'
  index 1
  value false
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }
 control.19 {
  iface CARD
  name 'Speaker Phantom Jack'
  value true
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }

http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf

what is the usage of headphone2.conf ?

seem no sound driver implemenet [Element Headphone2]

just installed arch linux using the 4.1 LTS kernel and the headphone jacks work fine

-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/211.

Changed in alsa-driver:
status: Confirmed → Unknown
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.