[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