At Wed, 13 Feb 2008 13:05:48 +0100, Matej Laitl wrote:
On Wednesday 13 of February 2008 11:59:58 Takashi Iwai wrote:
Now I just found that the new "Speaker" switch forgets it's value from time to time, ie. it's muted, you go and have lunch, and when you get back and start the music, it's unmuted. It is probably related to aggressive hda-codec powersaving, which I have enabled and set to 20 secs.
Hm, does the patch below have any influence? If the problem still persists, please take alsa-info.sh snapshots before and after power-saving.
This patch did not have any effect. (i haven't tested suspend-to-ram)
alsa-info before powersaving (speaker silent, mixer says: Speaker=MM): http://pastebin.ca/902330
alsa-info after powersaving (speaker loud, mixer says: Speaker=MM): http://pastebin.ca/902332
Oh, it's my thinko. The init routine shouldn't update the amp cache.
The patch below should fix this problem. Actually it reverts the code to my first patch.
Takashi
---
diff -r f4f3c5e8931a pci/hda/patch_realtek.c --- a/pci/hda/patch_realtek.c Tue Feb 12 18:37:26 2008 +0100 +++ b/pci/hda/patch_realtek.c Wed Feb 13 14:06:44 2008 +0100 @@ -3489,7 +3489,8 @@ static void alc_set_pin_output(struct hd snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type); /* unmute pin */ - snd_hda_codec_amp_stereo(codec, nid, HDA_OUTPUT, 0, 0xff, 0x00); + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, + AMP_OUT_UNMUTE); }
static void alc880_auto_set_output_and_unmute(struct hda_codec *codec,