[alsa-devel] Asus w5f. ALC660-VD codec not detected
Takashi Iwai
tiwai at suse.de
Wed Jan 7 14:07:01 CET 2009
At Wed, 7 Jan 2009 12:57:57 +0100,
Salvatore Filippone wrote:
>
> On Wed, Jan 7, 2009 at 12:45 PM, Takashi Iwai <tiwai at suse.de> wrote:
>
> At Mon, 29 Dec 2008 19:45:25 +0100,
> Nigel Henry wrote:
> >
> > UPDATE: Salvatore has found a workaround, so that both codecs are
> detected
> > correctly. Any help from alsa developers for a permanent fix would be
> > appreciated. See workaround at bottom of post.
> >
> (snip)
> > <Quoting Salvatore>
> > Saturday 16:05:58
> >
> > Ok, I finally found a workaround.
> > According to the thread starting at
> > http://thread.gmane.org/gmane.linux.alsa.devel/58849
> > I grabbed the latest source code
> alsa-driver-1.0.18a.17.g27a32.139.g6e583/
> > compiled with --with-debug=verbose and got the message
> > Dec 27 15:13:06 localhost kernel: ALSA
> > /mnt/travel/ALSA/alsa-driver-1.0.18a.17.g27a32.139.g6e583/pci/hda/../../
> alsa-kernel/pci/hda/hda_intel.c:779:
> > codec_mask = 0x2
> >
> > I then figure out that the sound device was at codec#0 when it worked,
> > therefore I changed snd_hda_intel.c by forcing codec_mask
> > if (!chip->codec_mask) {
> > chip->codec_mask = azx_readw(chip, STATESTS);
> > chip->codec_mask=0x03;
> > snd_printdd("codec_mask = 0x%x\n", chip->codec_mask);
> > }
> >
> > And now the sound works correctly.
> > Of course this opens the question of why azx_readw does not return a
> > correct mask;
>
> Well, this implies a BIOS bug. This value is set by BIOS to indicate
> which codec slot is available.
>
> > maybe the developers will be interested and/or will suggest a
> > fix that is a little more elegant/widely applicable? And why did the
> base
> > code work just once, for no clear reason ? (I did not have debug=verbose
> at
> > that time, so I don't have detailed messages in the system log).
>
> Not sure about this as I didn't track this bug.
> When did it work once? Is the device enabled by BIOS properly?
>
> To summarize:
>
> 1. It always did work with FC7.
I guess it worked likely just casually.
The old driver didn't clear the register bit before probing, so it got
uninitialized bits.
Takashi
More information about the Alsa-devel
mailing list