[SigmaTel STAC9228] Sound card lies about mixer dB levels

Bug #612125 reported by Ryan Thompson
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
alsa-driver (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Pulseaudio uses the decibel levels reported by the different driver-level mixers to combine them into one big mixer. However, the driver tells dirty lies, causing pulseaudio to misbehave. The root of the problem is that when any relevant mixer is at zero percent, the sound will be completely muted, but the driver will report a dB gain value that indicates otherwise. For example, at zero percent, the Master mixer reports "-48.00" dB gain. Hence, if pulseaudio attempts to set any volume level below -48 dB, it will turn the master mixer all the way down and mute the sound. Hence, the bottom third portion of my volume slider is completely mute.

The current workaround for this is to use the ignore_db=1 trick in default.pa. However, maybe pulseaudio needs a config option to specify the allowed range of each hardware mixer. Then I could tell it to never set the Master mixer below 5%.

anyway, the bug is that when the hardware mixers are completely silent, they lie about their dB gain values and thereby confuse pulseaudio.

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: alsa-base 1.0.22.1+dfsg-0ubuntu3
ProcVersionSignature: Ubuntu 2.6.32-24.38-preempt 2.6.32.15+drm33.5
Uname: Linux 2.6.32-24-preempt x86_64
NonfreeKernelModules: wl nvidia
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.21.
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: ryan 23668 F.... pulseaudio
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xf6ffc000 irq 21'
   Mixer name : 'SigmaTel STAC9228'
   Components : 'HDA:83847616,10280209,00100402'
   Controls : 28
   Simple ctrls : 18
Date: Sat Jul 31 12:34:22 2010
PackageArchitecture: all
ProcEnviron:
 LANGUAGE=
 PATH=(custom, user)
 LANG=en_US.utf8
 SHELL=/bin/zsh
SelectedCard: 0 Intel HDA-Intel - HDA Intel
SourcePackage: alsa-driver
Symptom: audio
Title: [SigmaTel STAC9228] Playback problem
dmi.bios.date: 12/26/2008
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A15
dmi.board.name: 0U8042
dmi.board.vendor: Dell Inc.
dmi.chassis.type: 8
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvrA15:bd12/26/2008:svnDellInc.:pnXPSM1330:pvr:rvnDellInc.:rn0U8042:rvr:cvnDellInc.:ct8:cvr:
dmi.product.name: XPS M1330
dmi.sys.vendor: Dell Inc.

Revision history for this message
Ryan Thompson (rct86) wrote :
Revision history for this message
Ryan Thompson (rct86) wrote :

I'm attaching the output of amixer with all the volume mixers un-muted but at zero percent. Notice that dB gain values are reported, but putting either Master or PCM at zero percent results in silence. Similarly, putting any of the relevant recording mixers to zero results in recording silence, regardless of the bogus dB gain values reported.

summary: - [SigmaTel STAC9228] Sound card tells about mixer dB levels
+ [SigmaTel STAC9228] Sound card lies about mixer dB levels
Revision history for this message
danmb (danmbox) wrote :

Lots of people probably have the same problem, but they probably never find this "technical" bug report

Revision history for this message
David Henningsson (diwic) wrote :

Yeah, I discovered this a while ago and brought it up with alsa-devel. For some additional info, see the thread starting at
http://mailman.alsa-project.org/pipermail/alsa-devel/2010-December/034389.html

Changed in alsa-driver (Ubuntu):
status: New → Confirmed
Revision history for this message
Ryan Thompson (rct86) wrote :

That mailing list thread references two git commits that are supposed to fix this:

http://git.alsa-project.org/?p=alsa-kernel.git;a=commit;h=de8c85f7840e5e29629de95f5af24297fb325e0b
http://git.alsa-project.org/?p=alsa-kernel.git;a=commit;h=a74ccea51d4314632a81d568d59bf885e5b09d93

Is there any easy way to determine if these commits are included in Ubuntu?

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

Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1

The dB range is -95.25 to 0dB ( 127 steps and each step is 0.75dB)

But dB Min of virtual master changed to -99999.99 dB

 control.3 {
  iface MIXER
  name 'Headphone Playback Volume'
  index 1
  value.0 127
  value.1 127
  comment {
   access 'read write'
   type INTEGER
   count 2
   range '0 - 127'
   dbmin -9525
   dbmax 0
   dbvalue.0 0
   dbvalue.1 0
  }
 }

 control.25 {
  iface MIXER
  name 'Master Playback Volume'
  value 101
  comment {
   access 'read write'
   type INTEGER
   count 1
   range '0 - 127'
   dbmin -9999999
   dbmax 0
   dbvalue.0 -1950
  }
 }

Revision history for this message
David Henningsson (diwic) wrote :

I believe this is fixed in the latest version of Ubuntu (both 13.04 and 13.10). Please reopen the bug if it isn't. Thanks!

Changed in alsa-driver (Ubuntu):
status: Confirmed → Fix Released
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.