![]() | |||||||||||||
Messages in this thread Patch in this message |
At Tue, 25 Nov 2008 08:03:12 +0100, Tino Keitel wrote: > > On Tue, Nov 25, 2008 at 00:10:14 +0100, Takashi Iwai wrote: > > At Mon, 24 Nov 2008 22:22:25 +0100, > > Tino Keitel wrote: > > > > > > Hi, > > > > > > the digital audio out (optical) is inactive (no red light, and > > > therefore silent) after resume from suspend on my Mac mini Core Duo. > > > When I disable and enable the IEC958 toggle, it works again. > > > > > > This didn't happen with 2.6.27. Currently, I use 2.6.28-rc6 as of > > > commit ged31348. > > > > > > This is the hardware in lspci: > > > > > > 00:1b.0 Audio device [0403]: Intel Corporation 82801G (ICH7 Family) > > > High Definition Audio Controller [8086:27d8] (rev 02) > > > Subsystem: Sigmatel Device [8384:7680] > > > Flags: bus master, fast devsel, latency 0, IRQ 22 > > > Memory at 90440000 (64-bit, non-prefetchable) [size=16K] > > > Capabilities: <access denied> > > > Kernel driver in use: HDA Intel > > > Kernel modules: snd-hda-intel > > > > > > The dmesg output with 2.6.27 and 2.6.28-rc are here: > > > > > > http://tikei.de/dmesg_2.6.27.5 > > > http://tikei.de/dmesg_2.6.28-rc6 > > > > Could you run alsa-info.sh with --no-upload option on both kernels > > and attach the generated files? The script is found at > > http://www.alsa-project.org/alsa-info.sh > > http://tikei.de/alsa-info-2.6.27.5.txt > http://tikei.de/alsa-info-2.6.28-broken.txt > http://tikei.de/alsa-info-2.6.28-fixed.txt (here I unchecked/rechecked > the IEC958 toggle) Could you try the patch below? thanks, Takashi --- diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index ba1ab73..eb91641 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -1436,12 +1436,12 @@ static void set_dig_out(struct hda_codec *codec, hda_nid_t nid, { hda_nid_t *d; - snd_hda_codec_write(codec, nid, 0, verb, val); + snd_hda_codec_write_cache(codec, nid, 0, verb, val); d = codec->slave_dig_outs; if (!d) return; for (; *d; d++) - snd_hda_codec_write(codec, *d, 0, verb, val); + snd_hda_codec_write_cache(codec, *d, 0, verb, val); } static inline void set_dig_out_convert(struct hda_codec *codec, hda_nid_t nid, | ||||||||||||
| Last update: 2008-11-25 08:17 [from the cache] ©2003-2008 | |||||||||||||