[alsa-devel] Verb table for group section
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?
Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Control: name="Line Out Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x00013734: IN OUT EAPD Detect Vref caps: HIZ 50 GRD 80 100 EAPD 0x2: EAPD Pin Default 0x02214120: [Jack] HP Out at Ext Front Conn = 1/8, Color = Green DefAssociation = 0x2, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT VREF_HIZ Unsolicited: tag=01, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 2 0x02* 0x03 ========> It always use 0x02.
Many Thanks. Kailang
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?
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).
Takashi
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Tuesday, December 12, 2017 5:10 PM To: Kailang Cc: (alsa-devel@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.
Takashi
------Please consider the environment before printing this e-mail.
On Tue, 12 Dec 2017 10:49:12 +0100, Kailang wrote:
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Tuesday, December 12, 2017 5:10 PM To: Kailang Cc: (alsa-devel@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
participants (2)
-
Kailang
-
Takashi Iwai