At Fri, 21 Sep 2012 19:07:28 +0200,
Oleksij Rempel wrote:
>
> Hallo all, Takashi,
>
> in attachment is a patch to enable external mic on Asus Zenbook UX32A.
> It works fine for me, except there created some mixer/controls which
> make no sense on this laptop. For example "Digital" input and IEC958.
> How are they detected? By pin descriptor, or some code insight of
> patch_realtek.c
It must come from the default pin setup.
I guess your machine has either a HDMI or a DP output, no?
If it has, IEC958 is a mandatory control for the audio output over
such a digital interface. "Digital" is likely the volume control
created by alsa-lib, so it's no driver issue, and you can safely
ignore it.
Takashi
> amixer and codec dump are attached too.
>
>
> --
> Regards,
> Oleksij
> [2 0001-ALSA-hda-Add-external-mic-quirk-for-Asus-Zenbook-UX3.patch <text/x-patch (7bit)>]
> >From 46472c1fbd9b82ea95cf22f2b49c74d4a7e82360 Mon Sep 17 00:00:00 2001
> From: Oleksij Rempel <bug-track(a)fisher-privat.net>
> Date: Fri, 21 Sep 2012 17:44:58 +0200
> Subject: [PATCH] ALSA: hda - Add external mic quirk for Asus Zenbook UX31A
>
> Signed-off-by: Oleksij Rempel <bug-track(a)fisher-privat.net>
> ---
> sound/pci/hda/patch_realtek.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 1907dda..3d440fc 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -6189,6 +6189,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> SND_PCI_QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_FIXUP_INV_DMIC),
> SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_MIC2_MUTE_LED),
> SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC),
> + SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_DMIC),
> SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
> SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC),
> SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
> --
> 1.7.10.4
>
> [3 amixer <text/plain; UTF-8 (base64)>]
> Simple mixer control 'Master',0
> Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
> Playback channels: Mono
> Limits: Playback 0 - 87
> Mono: Playback 47 [54%] [-30.00dB] [on]
> Simple mixer control 'Headphone',0
> Capabilities: pvolume pswitch penum
> Playback channels: Front Left - Front Right
> Limits: Playback 0 - 87
> Mono:
> Front Left: Playback 87 [100%] [0.00dB] [on]
> Front Right: Playback 87 [100%] [0.00dB] [on]
> Simple mixer control 'Speaker',0
> Capabilities: pvolume pswitch penum
> Playback channels: Front Left - Front Right
> Limits: Playback 0 - 87
> Mono:
> Front Left: Playback 87 [100%] [0.00dB] [on]
> Front Right: Playback 87 [100%] [0.00dB] [on]
> Simple mixer control 'PCM',0
> Capabilities: pvolume penum
> Playback channels: Front Left - Front Right
> Limits: Playback 0 - 255
> Mono:
> Front Left: Playback 255 [100%] [0.00dB]
> Front Right: Playback 255 [100%] [0.00dB]
> Simple mixer control 'Mic',0
> Capabilities: pvolume pswitch penum
> Playback channels: Front Left - Front Right
> Limits: Playback 0 - 31
> Mono:
> Front Left: Playback 0 [0%] [-34.50dB] [off]
> Front Right: Playback 0 [0%] [-34.50dB] [off]
> Simple mixer control 'Mic Boost',0
> Capabilities: volume penum
> Playback channels: Front Left - Front Right
> Capture channels: Front Left - Front Right
> Limits: 0 - 3
> Front Left: 0 [0%] [0.00dB]
> Front Right: 0 [0%] [0.00dB]
> Simple mixer control 'IEC958',0
> Capabilities: pswitch pswitch-joined penum
> Playback channels: Mono
> Mono: Playback [off]
> Simple mixer control 'Capture',0
> Capabilities: cvolume cswitch penum
> Capture channels: Front Left - Front Right
> Limits: Capture 0 - 31
> Front Left: Capture 14 [45%] [4.50dB] [on]
> Front Right: Capture 14 [45%] [4.50dB] [on]
> Simple mixer control 'Auto-Mute Mode',0
> Capabilities: enum
> Items: 'Disabled' 'Enabled'
> Item0: 'Enabled'
> Simple mixer control 'Digital',0
> Capabilities: cvolume penum
> Capture channels: Front Left - Front Right
> Limits: Capture 0 - 120
> Front Left: Capture 120 [100%] [30.00dB]
> Front Right: Capture 120 [100%] [30.00dB]
> Simple mixer control 'Internal Mic Boost',0
> Capabilities: volume penum
> Playback channels: Front Left - Front Right
> Capture channels: Front Left - Front Right
> Limits: 0 - 3
> Front Left: 2 [67%] [24.00dB]
> Front Right: 2 [67%] [24.00dB]
> [4 hda_1 <text/plain; UTF-8 (base64)>]
> Codec: Realtek ALC269VB
> Address: 0
> AFG Function Id: 0x1 (unsol 1)
> Vendor Id: 0x10ec0269
> Subsystem Id: 0x10431517
> Revision Id: 0x100100
> No Modem Function Group found
> Default PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Default Amp-In caps: N/A
> Default Amp-Out caps: N/A
> GPIO: io=2, o=0, i=0, unsolicited=1, wake=0
> IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> Node 0x02 [Audio Output] wcaps 0x1d: Stereo Amp-Out
> Control: name="Headphone Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Device: name="ALC269VB Analog", type="Audio", device=0
> Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
> Amp-Out vals: [0x2f 0x2f]
> Converter: stream=8, channel=0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x03 [Audio Output] wcaps 0x1d: Stereo Amp-Out
> Control: name="Speaker Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
> Amp-Out vals: [0x2f 0x2f]
> Converter: stream=8, channel=0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital
> Converter: stream=0, channel=0
> Digital:
> Digital category: 0x0
> PCM:
> rates [0x5e0]: 44100 48000 88200 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In
> Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x8b 0x8b]
> Converter: stream=0, channel=0
> SDI-Select: 0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Connection: 1
> 0x23
> Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In
> Control: name="Capture Switch", index=0, device=0
> Control: name="Capture Volume", index=0, device=0
> Device: name="ALC269VB Analog", type="Audio", device=0
> Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x0e 0x0e]
> Converter: stream=4, channel=0
> SDI-Select: 0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Connection: 1
> 0x22
> Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Control: name="Mic Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Control: name="Mic Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
> Connection: 5
> 0x18 0x19 0x1a 0x1b 0x1d
> Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00 0x00] [0x00 0x00]
> Connection: 2
> 0x02 0x0b
> Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00 0x00] [0x00 0x00]
> Connection: 2
> 0x03 0x0b
> Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00] [0x80]
> Connection: 2
> 0x02 0x0b
> Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x12 [Pin Complex] wcaps 0x40000b: Stereo Amp-In
> Control: name="Internal Mic Boost Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Control: name="Internal Mic Phantom Jack", index=0, device=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x01 0x01]
> Pincap 0x00000020: IN
> Pin Default 0x99a3092f: [Fixed] Mic at Int ATAPI
> Conn = ATAPI, Color = Unknown
> DefAssociation = 0x2, Sequence = 0xf
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x14 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
> Control: name="Speaker Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Control: name="Speaker Phantom Jack", index=0, device=0
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x00010014: OUT EAPD Detect
> EAPD 0x2: EAPD
> Pin Default 0x99130110: [Fixed] Speaker at Int ATAPI
> Conn = ATAPI, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=00, enabled=0
> Connection: 2
> 0x0c 0x0d*
> Node 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x17 [Pin Complex] wcaps 0x40010c: Mono Amp-Out
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80]
> Pincap 0x00000010: OUT
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x00:
> Connection: 1
> 0x0f
> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Control: name="Mic Boost Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Control: name="Mic Jack", index=0, device=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80 0x80]
> Pincap 0x00001734: IN OUT Detect
> Vref caps: HIZ 50 GRD 80
> Pin Default 0x01a19c20: [Jack] Mic at Ext Rear
> Conn = 1/8, Color = Pink
> DefAssociation = 0x2, Sequence = 0x0
> Pin-ctls: 0x24: IN VREF_80
> Unsolicited: tag=02, enabled=1
> Connection: 1
> 0x0d
> Node 0x19 [Pin Complex] wcaps 0x40008b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Pincap 0x00001724: IN Detect
> Vref caps: HIZ 50 GRD 80
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN VREF_HIZ
> Unsolicited: tag=00, enabled=0
> Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80 0x80]
> Pincap 0x0000003c: IN OUT HP Detect
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Unsolicited: tag=00, enabled=0
> Connection: 2
> 0x0c* 0x0d
> Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80 0x80]
> Pincap 0x00000034: IN OUT Detect
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Unsolicited: tag=00, enabled=0
> Connection: 2
> 0x0c* 0x0d
> Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x1d [Pin Complex] wcaps 0x400000: Mono
> Pincap 0x00000020: IN
> Pin Default 0x40079a2d: [N/A] Line Out at Ext N/A
> Conn = Analog, Color = Pink
> DefAssociation = 0x2, Sequence = 0xd
> Pin-ctls: 0x20: IN
> Node 0x1e [Pin Complex] wcaps 0x400381: Stereo Digital
> Pincap 0x00000014: OUT Detect
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=00, enabled=0
> Connection: 1
> 0x06
> Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
> Processing caps: benign=0, ncoeff=25
> Node 0x21 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
> Control: name="Headphone Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Control: name="Headphone Jack", index=0, device=0
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x0000001c: OUT HP Detect
> Pin Default 0x0121401f: [Jack] HP Out at Ext Rear
> Conn = 1/8, Color = Green
> DefAssociation = 0x1, Sequence = 0xf
> Pin-ctls: 0xc0: OUT HP
> Unsolicited: tag=01, enabled=1
> Connection: 2
> 0x0c* 0x0d
> Node 0x22 [Audio Selector] wcaps 0x30010b: Stereo Amp-In
> Amp-In caps: N/A
> Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00]
> Connection: 7
> 0x18 0x19 0x1a 0x1b 0x1d 0x0b 0x12*
> Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
> Connection: 6
> 0x18 0x19 0x1a 0x1b 0x1d 0x0b