Messages in this thread | | | Date | Fri, 22 Oct 2010 16:03:46 +0200 | From | Takashi Iwai <> | Subject | Re: [alsa-devel] HDA: no sound [was: mmotm 2010-10-20-15-01 uploaded] |
| |
At Fri, 22 Oct 2010 13:31:53 +0200, Clemens Ladisch wrote: > > Jiri Slaby wrote: > > On 10/21/2010 10:05 AM, Takashi Iwai wrote: > > > commit de8c85f7840e5e29629de95f5af24297fb325e0b > > > ALSA: HDA: Sigmatel: work around incorrect master muting > > > > Reverting this one helps. > > This one introduced even more wrong volume information on some codecs. > Pleasy try this patch on top:
Argh! There is always a reason why we should define a constant. I applied the fix now.
This explains why the old patch worked on Colin's machine. His codec chip is different (STAC9200?), and it doesn't go in this code path but has a static Master volume creation.
thanks,
Takashi
> > --- a/sound/pci/hda/patch_sigmatel.c > +++ b/sound/pci/hda/patch_sigmatel.c > @@ -32,6 +32,7 @@ > #include <sound/core.h> > #include <sound/asoundef.h> > #include <sound/jack.h> > +#include <sound/tlv.h> > #include "hda_codec.h" > #include "hda_local.h" > #include "hda_beep.h" > @@ -1145,7 +1146,7 @@ static int stac92xx_build_controls(struct hda_codec *codec) > /* correct volume offset */ > vmaster_tlv[2] += vmaster_tlv[3] * spec->volume_offset; > /* minimum value is actually mute */ > - vmaster_tlv[3] |= 0x1000; > + vmaster_tlv[3] |= TLV_DB_SCALE_MUTE; > err = snd_hda_add_vmaster(codec, "Master Playback Volume", > vmaster_tlv, slave_vols); > if (err < 0) >
| |