2011/4/6 Takashi Iwai tiwai@suse.de
At Wed, 6 Apr 2011 16:29:56 +0800, Raymond Yau wrote:
2011/4/6 Takashi Iwai tiwai@suse.de
At Wed, 6 Apr 2011 15:35:16 +0800, Raymond Yau wrote:
2011/4/6 Takashi Iwai tiwai@suse.de
At Tue, 5 Apr 2011 22:59:29 +0800, Raymond Yau wrote:
Fix alc662_dac_nid and change "6stack-dig" to "5stack-dig"
alc662 series only have 3 stereo DAC , so it can only support
5stack-dig
instead of 6stack-dig
Applied now. Thanks.
Takashi
The other problem is this patch
{ .id = 0x10ec0892, .name = "ALC892", .patch = patch_alc662 },
http://git.alsa-project.org/?p=alsa-kernel.git;a=commit;h=274693f37090ada2ca...
ALC892 provides ten DAC channels that simultaneously support 7.1
channel
sound playback, plus 2 channels of independent stereo sound output
(multiple
streaming) through the front panel stereo outputs.
It seem that there is no specific code to distinguish a 10 channels
alc892
from those 6 channels alc6xx
Yeah, but there is no quirks specific to alc892.
Remember that the final goal is to remove all model-quirks from the driver.
Takashi
My patch reduce the size of alc662_dac_nid may be wrong if the driver
intend
to use alc662_auto_fill_dac_nids() to handle 6, 8 , 10 channels
Don't worry, alc662_dac_nids is used only for the fixed quirks. The auto-parser doesn't use these fixed defined pin arrays.
Takashi
The bug for 10 channels alc892 is in alc662_mix_to_dac, it should return [Audio Output ]0x5 for [Audiomixer 0x0f] -- side channel if model=auto is used for 6stack
static inline hda_nid_t alc662_mix_to_dac(hda_nid_t nid) { if (nid == 0x0f) return 0x02; else if (nid >= 0x0c && nid <= 0x0e) return nid - 0x0c + 0x02; else if (nid == 0x26) /* ALC887-VD has this DAC too */ return 0x25; else return 0; }