[alsa-devel] HDA: no sound [was: mmotm 2010-10-20-15-01 uploaded]

Takashi Iwai tiwai at suse.de
Fri Oct 22 16:03:46 CEST 2010


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)
> 


More information about the Alsa-devel mailing list