[alsa-devel] Verb table for group section

Takashi Iwai tiwai at suse.de
Tue Dec 12 10:56:26 CET 2017


On Tue, 12 Dec 2017 10:49:12 +0100,
Kailang wrote:
> 
>  
> 
> > -----Original Message-----
> > From: Takashi Iwai [mailto:tiwai at suse.de] 
> > Sent: Tuesday, December 12, 2017 5:10 PM
> > To: Kailang
> > Cc: (alsa-devel at alsa-project.org)
> > Subject: Re: Verb table for group section
> > 
> > On Tue, 12 Dec 2017 09:30:18 +0100,
> > Kailang wrote:
> > > 
> > > Hi Takashi,
> > >  
> > > Attach file was ALC274 in our ENG test machine.
> > >  
> > > 0x16 0x90170110   => speaker
> > > 0x19 0x01a1913c   => headset mic
> > > 0x1a 0x01a1913d   => headphone MIC
> > > 0x1b 0x04011020  => Line out
> > > 0x21 0x0421102F  => Headphone
> > >  
> > > How could i set verb for group and sequence that Line out 
> > and Headphone will use DAC 0x03?
> > 
> > What is the exact restriction?  0x1b and 0x21 must use 0x03 
> > while 0x16 to 0x02?
> 
> Because the EQ support on DAC 0x02. If speaker muted, EQ will disable.
> 
> > 
> > If yes, try to define spec->gen.preferred_dacs[].  It's a 
> > list of paired NIDs to define the preferred DAC for each pin. 
> >  For example,
> > 
> > 	{ 0x1b, 0x03, 0x21, 0x03, 0x16, 0x02, 0 }
> > 
> > (don't forget the zero-termination).
> 
> static void alc274_dell_fixup_dac_bind(struct hda_codec *codec,
> 					    const struct hda_fixup *fix,
> 					    int action)
> {
> 	struct sigmatel_spec *spec = codec->spec;
> 	static hda_nid_t preferred_pairs[] = {
> 		0x21, 0x03, 0x1b, 0x03, 0x16, 0x02,
> 		0
> 	};
> 
> 	if (action != HDA_FIXUP_ACT_PRE_PROBE)
> 		return;
> 
> 	spec->gen.preferred_dacs = preferred_pairs;
> }
> 
> I use upper. It was assigned to 0x03 for 0x1b.
> But could I set it to default for ALC274?
> Speaker always use DAC 0x02. Other outs use DAC 0x03.

If it's a restriction of the codec, it should be OK to assign that
table always, yes.  But please put the proper comment what it does and
why it's necessary.


Takashi


More information about the Alsa-devel mailing list