[Inspiron 1420, SigmaTel STAC9228, Speaker, Internal] No sound at all

Bug #1284466 reported by David Baucum
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
alsa-driver (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

For a few years sound did not work on this laptop. Sometime during the 13.10 release cycle the problem was fixed in the kernel. Now in the 14.04 after a kernel update sound no longer works. I'm not 100% sure which kernel update broke sound. I will try to install some of the older kernels and track it down.

Alsa and PulseAudio both show that the sound is turned all the way up, but no sound plays and the sound tests fail to make any noise too.

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: alsa-base 1.0.25+dfsg-0ubuntu4
ProcVersionSignature: Ubuntu 3.13.0-12.32-generic 3.13.4
Uname: Linux 3.13.0-12-generic i686
ApportVersion: 2.13.2-0ubuntu5
Architecture: i386
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: david 3312 F.... pulseaudio
CurrentDesktop: LXDE
Date: Tue Feb 25 01:01:28 2014
PackageArchitecture: all
SourcePackage: alsa-driver
Symptom: audio
Symptom_AlsaPlaybackTest: ALSA playback test through plughw:Intel failed
Symptom_Card: Built-in Audio - HDA Intel
Symptom_DevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: lightdm 1907 F.... pulseaudio
                      david 3312 F.... pulseaudio
 /dev/snd/seq: timidity 1585 F.... timidity
Symptom_Jack: Speaker, Internal
Symptom_Type: No sound at all
Title: [Inspiron 1420, SigmaTel STAC9228, Speaker, Internal] No sound at all
UpgradeStatus: Upgraded to trusty on 2013-12-29 (58 days ago)
dmi.bios.date: 12/19/2008
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A10
dmi.board.name: 0DT492
dmi.board.vendor: Dell Inc.
dmi.chassis.type: 8
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvrA10:bd12/19/2008:svnDellInc.:pnInspiron1420:pvr:rvnDellInc.:rn0DT492:rvr:cvnDellInc.:ct8:cvr:
dmi.product.name: Inspiron 1420
dmi.sys.vendor: Dell Inc.

Revision history for this message
David Baucum (maxolasersquad) wrote :
Revision history for this message
Raymond (superquad-vortex2) wrote :

[ 15.611085] autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) type:speaker
[ 15.611089] speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 15.611092] hp_outs=2 (0xf/0xa/0x0/0x0/0x0)
[ 15.611093] mono: mono_out=0x0
[ 15.611095] dig-out=0x21/0x0
[ 15.611096] inputs:
[ 15.611099] Internal Mic=0x13
[ 15.611100] Mic=0xe
[ 15.624033] autoconfig: line_outs=0 (0x0/0x0/0x0/0x0/0x0) type:line
[ 15.624036] speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 15.624039] hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 15.624040] mono: mono_out=0x0
[ 15.624041] inputs:

Revision history for this message
Raymond (superquad-vortex2) wrote :
Revision history for this message
Raymond (superquad-vortex2) wrote :

[ 15.624033] autoconfig: line_outs=0 (0x0/0x0/0x0/0x0/0x0) type:line
[ 15.624036] speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 15.624039] hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 15.624040] mono: mono_out=0x0
[ 15.624041] inputs:

is the null config related to HDA modem codec

Codec: Conexant ID 2c06
Address: 1
MFG Function Id: 0x2 (unsol 1)
Vendor Id: 0x14f12c06
Subsystem Id: 0x14f1000f
Revision Id: 0x100000
Modem Function Group: 0x2

Revision history for this message
Raymond (superquad-vortex2) wrote :

/sys/class/sound/hwC0D0/init_pin_configs:
0x0a 0x0221101f
0x0b 0x40f000f0
0x0c 0x40f000f1
0x0d 0x90170110
0x0e 0x02811030
0x0f 0x02011020
0x10 0x40f000f2
0x11 0x40f000f3
0x12 0x40f000f4
0x13 0x90a60040
0x14 0x40f000f5
0x21 0x034410a0
0x22 0x40f000f6

/sys/class/sound/hwC0D0/driver_pin_configs:
0x0f 0x0221101f
0x0e 0x02a79130

the driver modify Line out jack to another headphone

the speaker will be muted if you plugged headphone into any one of the headphone jack

did pulseaudio check the both state of two headphone jacks ( Front Headphone Front Jack and Front Headphone Surround Jack) to determine the speaker should be muted or not ?

http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/paths

 control.29 {
  iface CARD
  name 'Front Headphone Front Jack'
  value false
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }
 control.30 {
  iface CARD
  name 'Front Headphone Surround Jack'
  value true
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }
 control.31 {
  iface CARD
  name 'Speaker Phantom Jack'
  value true
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }

Revision history for this message
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: unknown)
   properties:
    device.icon_name = "audio-headphones"
 active port: <analog-output-speaker>

try hda-jack-sense-test to check the jack detection is correct

speaker should be muted since this jack is plugged

 control.30 {
  iface CARD
  name 'Front Headphone Surround Jack'
  value true

Revision history for this message
Raymond (superquad-vortex2) wrote :

seem support surround 5.1 by retasking mic jack

http://support1.ap.dell.com/cn/zh/forum/thread.asp?fid=35&tid=132304

Revision history for this message
Raymond (superquad-vortex2) wrote :
Download full text (4.1 KiB)

seem pulseaudio did not check "Front Headphone Surround"

https://bugs.freedesktop.org/enter_bug.cgi?product=PulseAudio

> grep -ir "Headphone" *

analog-input-headphone-mic.conf:; For some ASUS netbooks that have one jack that can be either a Headphone
analog-input-headphone-mic.conf:[Jack Headphone Mic]
analog-input-headphone-mic.conf:[Element Headphone Mic Boost]
analog-input-headphone-mic.conf:[Element Headphone Mic]
analog-input-headphone-mic.conf:[Option Input Source:Headphone Mic]
analog-input-headphone-mic.conf:[Option Capture Source:Headphone Mic]
analog-input-headset-mic.conf:[Jack Headphone]
analog-input-headset-mic.conf:[Jack Headphone Mic]
analog-input-internal-mic.conf:[Element Headphone Mic]
analog-input-internal-mic.conf:[Element Headphone Mic Boost]
analog-output.conf:; headphones. But it should not hurt if we leave the headphone jack
analog-output.conf:[Element Headphone]
analog-output.conf:[Element Headphone2]
analog-output.conf.common:[Option Analog Output:Headphones]
analog-output.conf.common:name = output-headphones
analog-output.conf.common:[Option Analog Output:FP Headphones]
analog-output.conf.common:name = output-headphones
analog-output-desktop-speaker.conf:; the headphones. But it should not hurt if we leave the headphone
analog-output-desktop-speaker.conf:[Element Headphone]
analog-output-desktop-speaker.conf:[Element Headphone2]
analog-output-headphones-2.conf:; Path for mixers that have a 'Headphone2' control
analog-output-headphones-2.conf:description-key = analog-output-headphones
analog-output-headphones-2.conf:device.icon_name = audio-headphones
analog-output-headphones-2.conf:; This profile path is intended to control the second headphones, not
analog-output-headphones-2.conf:; the first headphones. But it should not hurt if we leave the
analog-output-headphones-2.conf:; headphone jack enabled nonetheless.
analog-output-headphones-2.conf:[Element Headphone]
analog-output-headphones-2.conf:[Element Headphone2]
analog-output-headphones-2.conf:; On some machines Front is actually a part of the Headphone path
analog-output-headphones.conf:; Path for mixers that have a 'Headphone' control
analog-output-headphones.conf:description-key = analog-output-headphones
analog-output-headphones.conf:device.icon_name = audio-headphones
analog-output-headphones.conf:[Jack Front Headphone]
analog-output-headphones.conf:[Jack Front Headphone Phantom]
analog-output-headphones.conf:[Jack Headphone]
analog-output-headphones.conf:[Jack Headphone Phantom]
analog-output-headphones.conf:# This jack can be either a headphone *or* a mic. Used on some ASUS netbooks.
analog-output-headphones.conf:[Jack Headphone Mic]
analog-output-headphones.conf:[Element Headphone]
analog-output-headphones.conf:; This profile path is intended to control the first headphones, not
analog-output-headphones.conf:; the second headphones. But it should not hurt if we leave the second
analog-output-headphones.conf:; headphone jack enabled nonetheless.
analog-output-headphones.conf:[Element Headphone2]
analog-output-headphones.conf:; On some machines Front is actually a part of the Headphone path
analog-output-lineout.conf:; headphones. But it should not hu...

Read more...

Changed in alsa-driver (Ubuntu):
status: New → Incomplete
Revision history for this message
David Baucum (maxolasersquad) wrote :

@Raymond: I see you marked this is Incomplete. What information do you want me to provide? You seemed to have found the original report against the kernel, explanation, and patch that was to fix this. After reading I remember, this had something to do with the detection of headphones not working quite right.

Revision history for this message
David Baucum (maxolasersquad) wrote :

It seems that I cannot install any kernel before 3.11.0-11. The bug definitely started before then. I tried 3.14.0 rc from kernel.ubuntu.com and the problem still shows.

Revision history for this message
Raymond (superquad-vortex2) wrote :

you must confirm that the jack detection of the two headphone are correct by running hda-jack-sense-test before conluding the bug is related to pulseaudio not able to determine the speaker is mute or not since it did not check 'Front Headphone Surround Jack' and "Front Headphone Front Jack" when you open pulseaudio bug report upstream

Revision history for this message
Raymond (superquad-vortex2) wrote :

post the output of following command when
1) left headphone is plugged and unplugged
2) middle headphone is plugged and unplugged
3) mic is plugged and unplugged

those iface=CARD, name="xxxx JACK" should return on when xxxx is plugged and off when xxxx is unplugged

amixer -c0 contents

Revision history for this message
David Baucum (maxolasersquad) wrote :

I'll run that as soon as I get a chance. Thanks for looking into it.

Revision history for this message
David Baucum (maxolasersquad) wrote :

I am attaching the requested outputs.

Revision history for this message
David Baucum (maxolasersquad) wrote :
Revision history for this message
David Baucum (maxolasersquad) wrote :
Revision history for this message
David Baucum (maxolasersquad) wrote :
Revision history for this message
Raymond (superquad-vortex2) wrote :

one of your headphone jack is alway plugged

https://launchpad.net/~diwic/+archive/hda

install snd-hda-tools and

run hda-jack-sense-test -a

/sys/class/sound/hwC0D0/driver_pin_configs:
0x0f 0x0221101f
0x0e 0x02a79130

it is a driver bug to set misc bit of the mic jack

Revision history for this message
David Baucum (maxolasersquad) wrote :

The ppa you linked to does not have packages built for trusty.

Revision history for this message
David Baucum (maxolasersquad) wrote :

I just pointed apt at the saucy repo.

Revision history for this message
David Baucum (maxolasersquad) wrote :

It is like you said. No matter what the left headphone jack always report to be plugged in. Here is output with nothing plugged into any port.

david@fink:~$ sudo hda-jack-sense-test
Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0e (Black Line In): present = No
Pin 0x0f (Black Line Out): present = No
Pin 0x21 (Black SPDIF Out): present = No

All of the other jacks toggle on and off as the physical port is plugged or unplugged.

Revision history for this message
Raymond (superquad-vortex2) wrote :

how about the Mic Jack ?

you have to use

hda-jack-sense-test -a

if Mic Jack can be detected

you need to clear misc bit

0x0e 0x02a79030

try hdajackretask to

set the headphone node 0x0a has no Jack detection if it report always plugged

0x0a 0x0221111f

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

Revision history for this message
David Baucum (maxolasersquad) wrote :

If I plug a microphone into the mic jack then hda-jack-sense-test -a shows it plugged in. e.g.:
david@fink:~/Downloads$ sudo hda-jack-sense-test -a
Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0b (Not connected): present = No
Pin 0x0c (Not connected): present = No
Pin 0x0d (Internal Speaker): present = No
Pin 0x0e (Black Line In): present = Yes
Pin 0x0f (Black Line Out): present = No
Pin 0x10 (Not connected): present = No
Pin 0x11 (Not connected): present = No
Pin 0x12 (Not connected): present = No
Pin 0x13 (Internal Mic): present = No
Pin 0x14 (Not connected): present = No
Pin 0x21 (Black SPDIF Out): present = No
Pin 0x22 (Not connected): present = No

I am not sure why I am getting more output now than before. How can I clear the misc bit?

Revision history for this message
Raymond (superquad-vortex2) wrote :

/sys/class/sound/hwC0D0/user_pin_configs:

0x0a 0x0221111f
0x0e 0x02a79030

Revision history for this message
Raymond (superquad-vortex2) wrote :

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

you need to send email to author and reporter about your case if 0e Mic jack can be detected and 0x0a always present

Revision history for this message
Raymond (superquad-vortex2) wrote :

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/Documentation/sound/alsa/HD-Audio.txt

to disable jack detection of all jacks

use hint jack_detect=0 by early patching

Revision history for this message
Raymond (superquad-vortex2) wrote :

https://bugzilla.kernel.org/show_bug.cgi?id=66621#c39

try the modified version of hda_jack_sense_test which can meause impedance sinc your codec support ImpSense

this require to use hda_codec parser in hda_analyzer

it is strange that the headphone does not support jack detection

Node 0x0a [Pin Complex] wcaps 0x400181: Stereo
  Control: name="Front Headphone Surround Jack", index=0, device=0
  Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x0221101f: [Jack] HP Out at Ext Front

Revision history for this message
David Baucum (maxolasersquad) wrote :

I apologise for the hiatus. Here are the results with the new hda-jack-sense-test that you linked to.
Without headphones:
david@fink:~$ sudo hda-jack-sense-test -a
Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0b (Not connected): present = No
Pin 0x0c (Not connected): present = No
Pin 0x0d (Internal Speaker): present = No
Pin 0x0e (Black Line In): present = No
Pin 0x0f (Black Line Out): present = No
Pin 0x10 (Not connected): present = No
Pin 0x11 (Not connected): present = No
Pin 0x12 (Not connected): present = No
Pin 0x13 (Internal Mic): present = No
Pin 0x14 (Not connected): present = No
Pin 0x21 (Black SPDIF Out): present = No
Pin 0x22 (Not connected): present = No

With headphones:
david@fink:~$ sudo hda-jack-sense-test -a
Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0b (Not connected): present = No
Pin 0x0c (Not connected): present = No
Pin 0x0d (Internal Speaker): present = No
Pin 0x0e (Black Line In): present = No
Pin 0x0f (Black Line Out): present = No
Pin 0x10 (Not connected): present = No
Pin 0x11 (Not connected): present = No
Pin 0x12 (Not connected): present = No
Pin 0x13 (Internal Mic): present = No
Pin 0x14 (Not connected): present = No
Pin 0x21 (Black SPDIF Out): present = No
Pin 0x22 (Not connected): present = No

Revision history for this message
Raymond (superquad-vortex2) wrote :

is there any reason for you not using the modified version since it is explicitly rewritten for those hda coded which support impsense ?

Revision history for this message
Raymond (superquad-vortex2) wrote :

it only test on those adi codecs ad198x which need 0.02 seconds for the measured impedance value become steady

according the specification

7.3.3.15 Pin Sense

The Pin Sense control returns the Presence Detect status, EDID-Like Data (ELD) Valid, and the impedance measurement of the device attached to the pin

Impedance returns the measured impedance of the widget. A returned value of 0x7FFF,FFFF (all 1‟s) indicates that a valid sense reading is not available, or the sense measurement is busy (refer to Section 7.3.1) if it has been recently triggered. This field is only valid if the widget has Sense capability as indicated by the “Impedance Sense Capable” bit of the Pin Capabilities parameter

for nid in codec.nodes:
    node = codec.get_node(nid)
    if WIDGET_TYPE_IDS[node.wtype] == 'PIN':
 pd = " "
        impedance = " "
 if ((node.pincaps & 4) == 4):
     if (node.pincaps & 2):
                codec.rw(nid, VERBS['SET_PIN_SENSE'], 0)
                time.sleep(0.02)
            sense = codec.rw(nid, VERBS['GET_PIN_SENSE'], 0)
            if (node.pincaps & 1):
  impedance = "Imp=%d" % (sense & 0x7fffffff)
            if (sense & 0x80000000):
  pd = "PD=1"
     else:
  pd = "PD=0"
        print "Pin 0x%.2x [%s] %s %s at %s (%s) %s : %s %s" % (nid, node.jack_conn_name, node.jack_type_name, node.jack_location_name, node.jack_location2_name, node.jack_color_name, node.defcfg_misc , pd, impedance)

Revision history for this message
Raymond (superquad-vortex2) wrote :

how about the other headphone since this laptop seem have two headphone ?

Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0b (Not connected): present = No
Pin 0x0c (Not connected): present = No
Pin 0x0d (Internal Speaker): present = No
Pin 0x0e (Black Line In): present = No
Pin 0x0f (Black Line Out): present = No

With headphones:
david@fink:~$ sudo hda-jack-sense-test -a
Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0b (Not connected): present = No
Pin 0x0c (Not connected): present = No
Pin 0x0d (Internal Speaker): present = No
Pin 0x0e (Black Line In): present = No
Pin 0x0f (Black Line Out): present = No

Revision history for this message
Raymond (superquad-vortex2) wrote :

if node 0a alway plugged and node 0x0f (headphone at center) always unplugged

you have to find out whether the mute is controlled by gpio

Revision history for this message
David Baucum (maxolasersquad) wrote :

The test results I posted are using the modified hda-jack-sense-test. I placed the script in /usr/share/snd-hda-tools/ becuase it requires some of the libraries in that directory to function.
I just ran all updates and here are the test results.

No headphones plugged in.
david@fink:~/Desktop$ sudo hda-jack-sense-test -a
Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0b (Not connected): present = No
Pin 0x0c (Not connected): present = No
Pin 0x0d (Internal Speaker): present = No
Pin 0x0e (Black Line In): present = No
Pin 0x0f (Black Line Out): present = No
Pin 0x10 (Not connected): present = No
Pin 0x11 (Not connected): present = No
Pin 0x12 (Not connected): present = No
Pin 0x13 (Internal Mic): present = No
Pin 0x14 (Not connected): present = No
Pin 0x21 (Black SPDIF Out): present = No
Pin 0x22 (Not connected): present = No

Headphones in left jack.
david@fink:~/Desktop$ sudo hda-jack-sense-test -a
Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0b (Not connected): present = No
Pin 0x0c (Not connected): present = No
Pin 0x0d (Internal Speaker): present = No
Pin 0x0e (Black Line In): present = No
Pin 0x0f (Black Line Out): present = No
Pin 0x10 (Not connected): present = No
Pin 0x11 (Not connected): present = No
Pin 0x12 (Not connected): present = No
Pin 0x13 (Internal Mic): present = No
Pin 0x14 (Not connected): present = No
Pin 0x21 (Black SPDIF Out): present = No
Pin 0x22 (Not connected): present = No

Headphones in right jack.
david@fink:~/Desktop$ sudo hda-jack-sense-test -a
Sigmatel specific "Analog Loopback: 0x00" verb ignored for the moment
Pin 0x0a (Black HP Out): present = Yes
Pin 0x0b (Not connected): present = No
Pin 0x0c (Not connected): present = No
Pin 0x0d (Internal Speaker): present = No
Pin 0x0e (Black Line In): present = No
Pin 0x0f (Black Line Out): present = Yes
Pin 0x10 (Not connected): present = No
Pin 0x11 (Not connected): present = No
Pin 0x12 (Not connected): present = No
Pin 0x13 (Internal Mic): present = No
Pin 0x14 (Not connected): present = No
Pin 0x21 (Black SPDIF Out): present = No
Pin 0x22 (Not connected): present = No

Revision history for this message
Raymond (superquad-vortex2) wrote :

this mean this patch is correct since jack detection of node 0x0f is normal

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

 /* correct the front output jack as a hp out */
- { 0x0f, 0x0227011f },
+ { 0x0f, 0x0221101f },

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

but it is strange that the fixup change back to 0x0227011f

 /* correct the front output jack as a hp out */
{ 0x0f, 0x0227011f },

but node 0x0a is abnormal , you need to suppress the jack detection by set bit 8 of pin-default of node 0x0a

by hdajackretask

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Please try uninstalling 'timidity' and all 'timidity' related packages. Then reboot.

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for alsa-driver (Ubuntu) because there has been no activity for 60 days.]

Changed in alsa-driver (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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