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

Jerone Young jerone at gmail.com
Fri Jan 25 08:11:38 CET 2008


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.
2) it does not mute the volume (since PCM is the real master mixer you
have to go to PCM to mute the volume!)

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! I have attached a
patch to remove this code .. because it is so does not function well!

Signed-off-by : Jerone Young <jerone at gmail.com>

diff -r 5dfc8324ae17 alsa-kernel/pci/hda/patch_analog.c
--- a/alsa-kernel/pci/hda/patch_analog.c	Fri Jan 25 00:12:14 2008 -0600
+++ b/alsa-kernel/pci/hda/patch_analog.c	Fri Jan 25 01:04:13 2008 -0600
@@ -170,26 +170,6 @@ static int ad198x_build_controls(struct
 	}
 	if (spec->dig_in_nid) {
 		err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in_nid);
-		if (err < 0)
-			return err;
-	}
-
-	/* if we have no master control, let's create it */
-	if (!snd_hda_find_mixer_ctl(codec, "Master Playback Volume")) {
-		snd_hda_set_vmaster_tlv(codec, spec->vmaster_nid,
-					HDA_OUTPUT, spec->vmaster_tlv);
-		err = snd_hda_add_vmaster(codec, "Master Playback Volume",
-					  spec->vmaster_tlv,
-					  (spec->slave_vols ?
-					   spec->slave_vols : ad_slave_vols));
-		if (err < 0)
-			return err;
-	}
-	if (!snd_hda_find_mixer_ctl(codec, "Master Playback Switch")) {
-		err = snd_hda_add_vmaster(codec, "Master Playback Switch",
-					  NULL,
-					  (spec->slave_sws ?
-					   spec->slave_sws : ad_slave_sws));
 		if (err < 0)
 			return err;
 	}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: remove_sudo_master.patch
Type: text/x-patch
Size: 1051 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20080125/bfbdf67a/attachment.patch 


More information about the Alsa-devel mailing list