Re: [ALSA] HDA: no sound in headphone-out caused by commit f889fa91ad47e (2.6.25-rc1 regression)

From: Takashi Iwai
Date: Wed Feb 13 2008 - 08:06:47 EST


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,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/