[alsa-devel] Fixing ALC269 the right way?
tiwai at suse.de
Fri Jul 30 14:06:01 CEST 2010
At Fri, 30 Jul 2010 13:42:32 +0200,
David Henningsson wrote:
> 2010-07-30 10:11, Takashi Iwai skrev:
> > At Fri, 30 Jul 2010 09:37:33 +0200,
> > David Henningsson wrote:
> >> Here's what I try to fix by playing around with it in hda-emu, it seems
> >> like more than one thing is broken here, but let's start with playback.
> >> This machine has one internal speaker and one line-out. Codec proc file
> >> is attached.
> > Please give alsa-info.sh output instead. It'll contain more
> > comprehensive information to analyze.
> Sorry. I have an alsa-info of a slightly differently machine here:
> The difference is two outputs (one line, one headphone), and two inputs.
> >> Here's my analysis so far:
> >> 1) If there's one internal speaker and one line-out (rather than
> >> headphone-out), should the internal speaker auto-mute? What's standard
> >> practice?
> > It's just because the pin is a line-out, no headphone (in addition to
> > the bug below).
> > If the pin is declared as a headphone, the driver turns on the
> > auto-mute function.
> >> 2) There are two DAC nids, 0x02 and 0x03, but only 0x02 is used (i e
> >> activated on playback). But line-out is connected (via nid 0x0d) to DAC
> >> 0x03, so there is no sound on line-out.
> > Right, it's a missing check of the pin.
> Should that have given a warning message, or is it a normal condition
> to ignore pins?
It depends. I personally think it's good to give a warning, though.
> > The pin 0x1b doesn't exist on
> > ALC268, so the parser (shared by both ALC268/269) ignored it.
> > The one-liner below fixes the problem.
> Nice, thanks for spotting! I've attached a signed-off commit that
> un-ignores both 0x1b and 0x1a (the latter one used in the alsa-info link
> above). Please apply.
OK, 0x1a is another thing. As I already applied the fix for 0x1b,
I apply it in addition.
But, this isn't the "right" fix -- these pins are actually invalid on
ALC268. The parse should be changed to check the pin capability,
and assign dynamically.
More information about the Alsa-devel