[alsa-devel] [PATCH ALSA HDA 1/1] Fix alc662_dac_nid and change 6stack-dig to 5stack-dig

Raymond Yau superquad.vortex2 at gmail.com
Wed Apr 6 14:59:58 CEST 2011


2011/4/6 Takashi Iwai <tiwai at suse.de>

> At Wed, 6 Apr 2011 16:29:56 +0800,
> Raymond Yau wrote:
> >
> > 2011/4/6 Takashi Iwai <tiwai at suse.de>
> >
> > > At Wed, 6 Apr 2011 15:35:16 +0800,
> > > Raymond Yau wrote:
> > > >
> > > > 2011/4/6 Takashi Iwai <tiwai at 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=274693f37090ada2cadd09944ab883f05ea6ebe6
> > > >
> > > > 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;
}


More information about the Alsa-devel mailing list