[alsa-devel] [PATCH] Remove psuedo master from pci/hda/analog_patch.c . It does not function well!

Takashi Iwai tiwai at suse.de
Fri Jan 25 08:56:58 CET 2008


At Fri, 25 Jan 2008 01:11:38 -0600,
Jerone Young wrote:
> 
> Hi I noticed after installing 1.0.16rc-1 today that my Thinkpad T61
> with AD1984 had a Master mixer now. Problem is it's not very good in
> that it
> 1) does not follow with PCM (the real master) volume well. It causes a
> volume disparity and does not
>    follow or even boost PCM signal. So it just a bad mister.

Hm, the PCM volume should follow the master even in the current code.
Doesn't the output volume change if you change the master volume (not
mute)? 
Please check the AMP out value of the NID 0x04 in
/proc/asound/card0/codec#*.  This corresponds to the PCM volume.
Compare the values between master=100% and master=50%.

> 2) it does not mute the volume (since PCM is the real master mixer you
> have to go to PCM to mute the volume!)

There is no PCM "switch" to mute.
It's a known problem and the patch below should fix.

> I have fixed a problem in Gstreamer so that Gnome (gnome volume mixer)
> does finally work correctly for the AD1984 which does not have a
> Master. When it looks for a master mixer it now will fallback to PCM
> as a master mixer (the code is upsteam too). You can find this here:
> 
> http://bugzilla.gnome.org/show_bug.cgi?id=506928
> 
> I have a feeling this is why this patch was put in. I have fixed the
> problem in Gnome, KDE has allways worked. just fine.
> 
> But I would honestly love it if this code was removed!!! If you need a
> Master can you rename PCM to master for the AD1984!

PCM volume is no real master, unfortunately.  The analog loopbacks can
be played regardless of PCM volume.  That's why it wasn't named as
master at the first place.

> I have attached a
> patch to remove this code .. because it is so does not function well!

(Can you stop! writing!! with!!! too much exclamation marks please?)

It's nothing but a bug that I overlooked.
Let's fix this more reasonablly.


thanks,

Takashi

---

diff -r 303f894ac2a8 pci/hda/patch_analog.c
--- a/pci/hda/patch_analog.c	Thu Jan 24 18:46:42 2008 +0100
+++ b/pci/hda/patch_analog.c	Fri Jan 25 08:42:21 2008 +0100
@@ -138,6 +138,7 @@ static const char *ad_slave_vols[] = {
 	"Side Playback Volume",
 	"Headphone Playback Volume",
 	"Mono Playback Volume",
+	"Speaker Playback Volume",
 	NULL
 };
 
@@ -149,6 +150,7 @@ static const char *ad_slave_sws[] = {
 	"Side Playback Switch",
 	"Headphone Playback Switch",
 	"Mono Playback Switch",
+	"Speaker Playback Switch",
 	NULL
 };
 


More information about the Alsa-devel mailing list