From nobody Fri Jun 14 15:30:19 2024 X-Original-To: freebsd-multimedia@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4W13Bd4kW1z5P3Jb for ; Fri, 14 Jun 2024 15:30:33 +0000 (UTC) (envelope-from adam.retter@googlemail.com) Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4W13Bd0dzGz4kXZ for ; Fri, 14 Jun 2024 15:30:33 +0000 (UTC) (envelope-from adam.retter@googlemail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=googlemail.com header.s=20230601 header.b=nbgXfqFi; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of adam.retter@googlemail.com designates 2a00:1450:4864:20::529 as permitted sender) smtp.mailfrom=adam.retter@googlemail.com Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-57c923e03caso2609666a12.3 for ; Fri, 14 Jun 2024 08:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20230601; t=1718379032; x=1718983832; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=WzDB3rAr06yCE1LNxi9f3IPJyqiNV0clH+Yf/ysOrnQ=; b=nbgXfqFipAGhqUpfdN+JodEr/K/XAJeTUEvs1XkyKqi63PQL7dxi1zceSxfG77nViq XsNJ2pHUBvbQgIFGwidERomLr52/HiXlG5of2OaFF/bgOUiL5Joo1vchYjGorhmeeMv8 EnmlhTdfmahW1ii1/Mpahq3J+iwJ/tallioflz+Y31uuJ0kaWHJ1HaKQIWtm38Yt1cri BC/xz6WsWdeAAbymO5wr2wDuA5QG9wDrBJ+nFU0IzntU9jAwnoU+jcKdXnQ8mhaDrA0K wEcoBFKKbmh8kmszH5q7uHufVEoPhwfZE+kADnuJvPHz0k0Yo1u6UWuKJ+2yZ255UKy/ sHHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718379032; x=1718983832; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=WzDB3rAr06yCE1LNxi9f3IPJyqiNV0clH+Yf/ysOrnQ=; b=T7fDP8DWZWzWOkBscn3ihf68l6ZC3fc5IFj1UIt80nl3kY6Z0rJt9mU6xtSFesYwTL d2C3o/NwhE+0QBYvxNcWspyEtQ0B/Y120trRx2Noc69/w5OCazeY64BGSpcDHQ7ASZgA CbF57zju7LYND2NBdQvKhpvIq5vaCSJqwX4bSiq/NB8NWnZjTE+6voikBNSSr/PLY/Sj iFrJdcdfJKMs+W35hSro1vwcqtzfHvyzN/MOxgj7P5wgLFGhERTaiYLXwxdd2CQbplhD RvcpdnOjWHb95t019//dq+sassOIVZb67bKUQB0Fwp+R5uGJ+TzvdqeTS6I/lNhEX+gA FwiA== X-Gm-Message-State: AOJu0YylfeacV6AqcmcySr/gskZtZZqJOms3rGtAVISBse+tdNIg/L6U MqWDGoarDy8OhyK6oxrTjjmna9c/7fIZCUdkM/eR6i/WworZlhlGVaqlZUPtgMx3yjmILQrelyZ o+Fzf3n2BfsxgD6bofX2wtxtV5ZbQEbwTykc= X-Google-Smtp-Source: AGHT+IGWbhHQ61v7c92eabqIaIIQBSVay4MHkfi8FG4dNw1HcuQ+N+guMhJB5yHCWvjWceKNwYUA9KUx3DIBkN1OLks= X-Received: by 2002:a50:f604:0:b0:57c:60f0:98bb with SMTP id 4fb4d7f45d1cf-57cbd651d44mr1698162a12.4.1718379031726; Fri, 14 Jun 2024 08:30:31 -0700 (PDT) List-Id: Multimedia discussions List-Archive: https://lists.freebsd.org/archives/freebsd-multimedia List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-multimedia@FreeBSD.org MIME-Version: 1.0 From: Adam Retter Date: Fri, 14 Jun 2024 17:30:19 +0200 Message-ID: Subject: Issue with In-built Mic and Tiger Lake-H HD Audio Controller To: freebsd-multimedia@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.89 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.89)[-0.890]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; R_DKIM_ALLOW(-0.20)[googlemail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; DWL_DNSWL_NONE(0.00)[googlemail.com:dkim]; TAGGED_FROM(0.00)[]; FREEMAIL_FROM(0.00)[googlemail.com]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; MISSING_XM_UA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; PREVIOUSLY_DELIVERED(0.00)[freebsd-multimedia@freebsd.org]; TO_DN_NONE(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[googlemail.com:+]; MID_RHS_MATCH_FROMTLD(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MLMMJ_DEST(0.00)[freebsd-multimedia@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::529:from] X-Rspamd-Queue-Id: 4W13Bd0dzGz4kXZ I am trying to get "Tiger Lake-H HD Audio Controller" working correctly on FreeBSD 15.0-CURRENT. I created a very simple patch for the Kernel here (based on someone else's work) - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272682#c1 The machine I am using is a Lenovo ThinkPad X1 Extreme Gen 4, specs are: 1. https://psref.lenovo.com/Detail/ThinkPad_X1_Extreme_Gen_4?M=20Y5001DMX 2. https://bsd-hardware.info/?probe=d19db2828c After applying that patch and building and installing a new Kernel, the sound now seems to mostly work. However, there is a small issue with the internal microphone which I can't seem to figure out. When using the laptop, the /dev/pcm3 does not seem to be able to record any sound from what it claims is the internal microphone. However if I plug in a Headset (headphones and boom mic) and connect it to the headphone jack of the laptop, then the boom mic does record sound as part of /dev/pcm3. This is odd as the headphones themselves are part of /dev/pcm4. I wondered if I could just use /boot/device.hints to move the boom mic into /dev/pcm4. However, I cannot find the nid for the internal mic to place into /dev/pcm3 in its place. One odd thing is that if I look at a pindump from snd_hda, then one of the devices (nid 27) has both IN and OUT capabilities, but the manual page seems to suggest that should not be possible, I wonder if this is my missing microphone? I am a bit stumped as to how to get the Internal Mic working (and then switching over automatically to the external headset boom mic when it is plugged in). If someone could offer some advice please? 1. The relevant lines from /var/log/messages: Jun 13 15:52:38 formaggio kernel: pcm3: at nid 23 and 25 on hdaa1 Jun 13 15:52:38 formaggio kernel: pcm4: at nid 33 on hdaa1 I think pcm3 should be (but isn't yet) the in-build speakers and mic. At the moment it seems that it is the in-built speakers and external headset boom mic. I think pcm4 should be (but isn't yet) the headset's headphones and boom mic. At the moment it seems that it is only the headset's headphones. 2. The output from sysctl dev.hdac.1.pindump=1: Jun 14 16:27:26 formaggio kernel: hdaa1: Dumping AFG pins: Jun 14 16:27:26 formaggio kernel: hdaa1: nid 0x as seq device conn jack loc color misc Jun 14 16:27:26 formaggio kernel: hdaa1: 18 40000000 0 0 Line-out None Unknown 0x00 Unknown 0 DISA Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: IN Jun 14 16:27:26 formaggio kernel: hdaa1: 19 411111f0 15 0 Speaker None 1/8 Rear Black 1 DISA Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: IN Jun 14 16:27:26 formaggio kernel: hdaa1: 20 411111f0 15 0 Speaker None 1/8 Rear Black 1 DISA Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: OUT EAPD Sense: 0x00000000 (disconnected) Jun 14 16:27:26 formaggio kernel: hdaa1: 23 90170110 1 0 Speaker Fixed Analog Internal Unknown 1 Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: OUT HP Sense: 0x00000000 (disconnected) Jun 14 16:27:26 formaggio kernel: hdaa1: 24 411111f0 15 0 Speaker None 1/8 Rear Black 1 DISA Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: IN Sense: 0x00000000 (disconnected) Jun 14 16:27:26 formaggio kernel: hdaa1: 25 03a11030 3 0 Mic Jack 1/8 Left Black 0 Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: IN VREF Sense: 0x00000000 (disconnected) Jun 14 16:27:26 formaggio kernel: hdaa1: 26 411111f0 15 0 Speaker None 1/8 Rear Black 1 DISA Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: IN VREF Sense: 0x00000000 (disconnected) Jun 14 16:27:26 formaggio kernel: hdaa1: 27 411111f0 15 0 Speaker None 1/8 Rear Black 1 DISA Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: IN OUT EAPD VREF Sense: 0x00000000 (disconnected) Jun 14 16:27:26 formaggio kernel: hdaa1: 30 411111f0 15 0 Speaker None 1/8 Rear Black 1 DISA Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: OUT Jun 14 16:27:26 formaggio kernel: hdaa1: 33 03211020 2 0 Headphones Jack 1/8 Left Black 0 Jun 14 16:27:26 formaggio kernel: hdaa1: Caps: OUT HP EAPD Sense: 0x00000000 (disconnected) Jun 14 16:27:26 formaggio kernel: hdaa1: NumGPIO=5 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1 Jun 14 16:27:26 formaggio kernel: hdaa1: GPIO0: disabled Jun 14 16:27:26 formaggio kernel: hdaa1: GPIO1: disabled Jun 14 16:27:26 formaggio kernel: hdaa1: GPIO2: disabled Jun 14 16:27:26 formaggio kernel: hdaa1: GPIO3: disabled Jun 14 16:27:26 formaggio kernel: hdaa1: GPIO4: disabled 3. The output from cat /dev/sndstat: FreeBSD Audio Driver Installed devices: pcm0: on hdaa0 (1p:1v/0r:0v) snddev flags=0x200002e7 [pcm0:play:dsp0.p0]: spd 48000, fmt 0x00200010, flags 0x00006108, 0x00000004 interrupts 780930, underruns 0, feed 780930, ready 0 [b:2048/1024/2|bs:2048/1024/2] channel flags=0x6108 {userland} -> feeder_mixer(0x00200010) -> {hardware} pcm0:play:dsp0.p0[pcm0:virtual_play:dsp0.vp0]: spd 44100/48000, fmt 0x00200010, flags 0x100011c8, 0x00000029, pid 3380 (pulseaudio) interrupts 0, underruns 0, feed 825565, ready 15440 [b:0/0/0|bs:16384/4096/4] channel flags=0x100011c8 {userland} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> feeder_rate(0x00200010 q:1 44100 -> 48000) -> {hardware} pcm1: on hdaa0 (1p:1v/0r:0v) snddev flags=0x200002e7 [pcm1:play:dsp1.p0]: spd 48000, fmt 0x00200010, flags 0x00006108, 0x00000004 interrupts 780929, underruns 0, feed 780929, ready 0 [b:2048/1024/2|bs:2048/1024/2] channel flags=0x6108 {userland} -> feeder_mixer(0x00200010) -> {hardware} pcm1:play:dsp1.p0[pcm1:virtual_play:dsp1.vp0]: spd 44100/48000, fmt 0x00200010, flags 0x100011c8, 0x00000029, pid 3380 (pulseaudio) interrupts 0, underruns 0, feed 825564, ready 15444 [b:0/0/0|bs:16384/4096/4] channel flags=0x100011c8 {userland} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> feeder_rate(0x00200010 q:1 44100 -> 48000) -> {hardware} pcm2: on hdaa0 (1p:1v/0r:0v) snddev flags=0x200002e7 [pcm2:play:dsp2.p0]: spd 48000, fmt 0x00200010, flags 0x00006108, 0x00000004 interrupts 780928, underruns 0, feed 780928, ready 0 [b:2048/1024/2|bs:2048/1024/2] channel flags=0x6108 {userland} -> feeder_mixer(0x00200010) -> {hardware} pcm2:play:dsp2.p0[pcm2:virtual_play:dsp2.vp0]: spd 44100/48000, fmt 0x00200010, flags 0x100011c8, 0x00000029, pid 3380 (pulseaudio) interrupts 0, underruns 0, feed 825563, ready 15444 [b:0/0/0|bs:16384/4096/4] channel flags=0x100011c8 {userland} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> feeder_rate(0x00200010 q:1 44100 -> 48000) -> {hardware} pcm3: on hdaa1 (1p:1v/1r:1v) default snddev flags=0x2e2 [pcm3:play:dsp3.p0]: spd 48000, fmt 0x00200010, flags 0x00002108, 0x00000004 interrupts 779568, underruns 0, feed 779568, ready 0 [b:2048/1024/2|bs:2048/1024/2] channel flags=0x2108 {userland} -> feeder_mixer(0x00200010) -> {hardware} pcm3:play:dsp3.p0[pcm3:virtual_play:dsp3.vp0]: spd 44100/48000, fmt 0x00200010, flags 0x100011c8, 0x00000029, pid 3380 (pulseaudio) interrupts 0, underruns 0, feed 824151, ready 15444 [b:0/0/0|bs:16384/4096/4] channel flags=0x100011c8 {userland} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> feeder_rate(0x00200010 q:1 44100 -> 48000) -> {hardware} [pcm3:record:dsp3.r0]: spd 48000, fmt 0x00200010, flags 0x00002108, 0x00000005 interrupts 3118265, overruns 0, feed 6236529, hfree 512, sfree 511 [b:512/256/2|bs:512/256/2] channel flags=0x2108 {hardware} -> feeder_root(0x00200010) -> feeder_mixer(0x00200010) -> {userland} pcm3:record:dsp3.r0[pcm3:virtual_record:dsp3.vr0]: spd 44100/48000, fmt 0x00200010, flags 0x100011c8, 0x00000029, pid 3380 (pulseaudio) interrupts 0, overruns 0, feed 9403539, hfree 0, sfree 16148 [b:0/0/0|bs:16384/4096/4] channel flags=0x100011c8 {hardware} -> feeder_root(0x00200010) -> feeder_rate(0x00200010 q:1 48000 -> 44100) -> feeder_volume(0x00200010) -> {userland} pcm4: on hdaa1 (1p:1v/0r:0v) snddev flags=0x200002e3 [pcm4:play:dsp4.p0]: spd 48000, fmt 0x00200010, flags 0x00002108, 0x00000004 interrupts 779568, underruns 0, feed 779568, ready 0 [b:2048/1024/2|bs:2048/1024/2] channel flags=0x2108 {userland} -> feeder_mixer(0x00200010) -> {hardware} pcm4:play:dsp4.p0[pcm4:virtual_play:dsp4.vp0]: spd 44100/48000, fmt 0x00200010, flags 0x100011c8, 0x00000029, pid 3380 (pulseaudio) interrupts 0, underruns 0, feed 824148, ready 15444 [b:0/0/0|bs:16384/4096/4] channel flags=0x100011c8 {userland} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> feeder_rate(0x00200010 q:1 44100 -> 48000) -> {hardware} pcm5: on hdaa2 (1p:1v/0r:0v) snddev flags=0x200002e7 [pcm5:play:dsp5.p0]: spd 48000, fmt 0x00200010, flags 0x00006108, 0x00000004 interrupts 779566, underruns 0, feed 779566, ready 0 [b:2048/1024/2|bs:2048/1024/2] channel flags=0x6108 {userland} -> feeder_mixer(0x00200010) -> {hardware} pcm5:play:dsp5.p0[pcm5:virtual_play:dsp5.vp0]: spd 44100/48000, fmt 0x00200010, flags 0x100011c8, 0x00000029, pid 3380 (pulseaudio) interrupts 0, underruns 0, feed 824148, ready 15328 [b:0/0/0|bs:16384/4096/4] channel flags=0x100011c8 {userland} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> feeder_rate(0x00200010 q:1 44100 -> 48000) -> {hardware} 4. The output from mixer: pcm3:mixer: on hdaa1 (play/rec) (default) vol = 0.85:0.85 pbk pcm = 1.00:1.00 pbk speaker = 1.00:1.00 rec mic = 1.00:1.00 rec src rec = 1.00:1.00 pbk 5. The output from sysctl hw.snd: hw.snd.maxautovchans: 16 hw.snd.default_unit: 3 hw.snd.default_auto: 1 hw.snd.verbose: 4 hw.snd.vpc_mixer_bypass: 1 hw.snd.feeder_rate_quality: 1 hw.snd.feeder_rate_round: 25 hw.snd.feeder_rate_max: 2016000 hw.snd.feeder_rate_min: 1 hw.snd.feeder_rate_polyphase_max: 183040 hw.snd.feeder_rate_presets: 100:8:0.85 100:36:0.92 100:164:0.97 hw.snd.feeder_eq_exact_rate: 0 hw.snd.feeder_eq_presets: PEQ:16000,0.2500,62,0.2500:-9,9,1.0:44100,48000,88200,96000,176400,192000 hw.snd.basename_clone: 1 hw.snd.compat_linux_mmap: 0 hw.snd.syncdelay: -1 hw.snd.usefrags: 0 hw.snd.vpc_reset: 0 hw.snd.vpc_0db: 45 hw.snd.vpc_autoreset: 1 hw.snd.timeout: 5 hw.snd.latency_profile: 1 hw.snd.latency: 2 hw.snd.report_soft_matrix: 1 hw.snd.report_soft_formats: 1 6. The output from sysctl dev.pcm: sysctl dev.pcm dev.pcm.5.mode: 3 dev.pcm.5.bitperfect: 0 dev.pcm.5.buffersize: 65536 dev.pcm.5.play.vchanformat: s16le:2.0 dev.pcm.5.play.vchanrate: 48000 dev.pcm.5.play.vchanmode: passthrough dev.pcm.5.play.vchans: 1 dev.pcm.5.play.32bit: 24 dev.pcm.5.%parent: hdaa2 dev.pcm.5.%pnpinfo: dev.pcm.5.%location: nid=4 dev.pcm.5.%driver: pcm dev.pcm.5.%desc: Intel Tiger Lake (HDMI/DP 8ch) dev.pcm.4.mode: 3 dev.pcm.4.bitperfect: 0 dev.pcm.4.buffersize: 65536 dev.pcm.4.play.vchanformat: s16le:2.0 dev.pcm.4.play.vchanrate: 48000 dev.pcm.4.play.vchanmode: fixed dev.pcm.4.play.vchans: 1 dev.pcm.4.play.32bit: 24 dev.pcm.4.%parent: hdaa1 dev.pcm.4.%pnpinfo: dev.pcm.4.%location: nid=33 dev.pcm.4.%driver: pcm dev.pcm.4.%desc: Realtek (0x0287) (Left Analog Headphones) dev.pcm.3.mode: 7 dev.pcm.3.bitperfect: 0 dev.pcm.3.buffersize: 65536 dev.pcm.3.rec.vchanformat: s16le:2.0 dev.pcm.3.rec.vchanrate: 48000 dev.pcm.3.rec.vchanmode: fixed dev.pcm.3.rec.vchans: 1 dev.pcm.3.rec.autosrc: 2 dev.pcm.3.rec.32bit: 24 dev.pcm.3.play.vchanformat: s16le:2.0 dev.pcm.3.play.vchanrate: 48000 dev.pcm.3.play.vchanmode: fixed dev.pcm.3.play.vchans: 1 dev.pcm.3.play.32bit: 24 dev.pcm.3.%parent: hdaa1 dev.pcm.3.%pnpinfo: dev.pcm.3.%location: nid=23,25 dev.pcm.3.%driver: pcm dev.pcm.3.%desc: Realtek (0x0287) (Analog) dev.pcm.2.mode: 3 dev.pcm.2.bitperfect: 0 dev.pcm.2.buffersize: 65536 dev.pcm.2.play.vchanformat: s16le:2.0 dev.pcm.2.play.vchanrate: 48000 dev.pcm.2.play.vchanmode: passthrough dev.pcm.2.play.vchans: 1 dev.pcm.2.play.32bit: 24 dev.pcm.2.%parent: hdaa0 dev.pcm.2.%pnpinfo: dev.pcm.2.%location: nid=7 dev.pcm.2.%driver: pcm dev.pcm.2.%desc: NVIDIA (0x00a0) (HDMI/DP 8ch) dev.pcm.1.mode: 3 dev.pcm.1.bitperfect: 0 dev.pcm.1.buffersize: 65536 dev.pcm.1.play.vchanformat: s16le:2.0 dev.pcm.1.play.vchanrate: 48000 dev.pcm.1.play.vchanmode: passthrough dev.pcm.1.play.vchans: 1 dev.pcm.1.play.32bit: 24 dev.pcm.1.%parent: hdaa0 dev.pcm.1.%pnpinfo: dev.pcm.1.%location: nid=6 dev.pcm.1.%driver: pcm dev.pcm.1.%desc: NVIDIA (0x00a0) (HDMI/DP 8ch) dev.pcm.0.mode: 3 dev.pcm.0.bitperfect: 0 dev.pcm.0.buffersize: 65536 dev.pcm.0.play.vchanformat: s16le:2.0 dev.pcm.0.play.vchanrate: 48000 dev.pcm.0.play.vchanmode: passthrough dev.pcm.0.play.vchans: 1 dev.pcm.0.play.32bit: 24 dev.pcm.0.%parent: hdaa0 dev.pcm.0.%pnpinfo: dev.pcm.0.%location: nid=4 dev.pcm.0.%driver: pcm dev.pcm.0.%desc: NVIDIA (0x00a0) (HDMI/DP 8ch) dev.pcm.%parent: 7. In-case it is useful I also attach below the output from `cat /proc/asound/card1/codec#0` on Ubuntu 24.04 running on the same laptop (where both mics work correctly and as expected). I note that this also contains a number of nid, but there seem to be more of them than from snd_hda: Codec: Realtek ALC287 Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0287 Subsystem Id: 0x17aa22e5 Revision Id: 0x100002 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 State of AFG node 0x01: Power states: D0 D1 D2 D3 D3cold CLKSTOP EPSS Power: setting=D0, actual=D0 GPIO: io=5, 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 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0x41d: 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: [0x4a 0x4a] Converter: stream=0, channel=0 PCM: rates [0x40]: 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out Control: name="Headphone 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: [0x38 0x38] Converter: stream=0, channel=0 PCM: rates [0x40]: 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x06 [Audio Output] wcaps 0x411: Stereo Converter: stream=0, channel=0 PCM: rates [0x40]: 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x07 [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x97 0x97] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x40]: 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x24 Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In Control: name="Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x3f 0x3f] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x97 0x97] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x22 Node 0x0a [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x97 0x97] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x40]: 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x25 Node 0x0b [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0c [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0d [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x40000000: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0x0, Sequence = 0x0 Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00010014: OUT EAPD Detect EAPD 0x2: EAPD Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x02 Node 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x17 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0000001c: OUT HP Detect Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 4 0x02* 0x03 0x06 0x08 In-driver Connection: 2 0x02 0x03 Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000024: IN Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Control: name="Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] Pincap 0x00003724: IN Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x03a11030: [Jack] Mic at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=03, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1a [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00003724: IN Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out 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: [0x80 0x80] Pincap 0x00013734: IN OUT EAPD Detect Vref caps: HIZ 50 GRD 80 100 EAPD 0x2: EAPD Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x02* 0x03 Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1d [Pin Complex] wcaps 0x400400: Mono Pincap 0x00000020: IN Pin Default 0x40471a6d: [N/A] SPDIF Out at Ext N/A Conn = Analog, Color = Black DefAssociation = 0x6, Sequence = 0xd Pin-ctls: 0x20: IN Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1e [Pin Complex] wcaps 0x400501: Stereo 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: 0x40: OUT Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x06 Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=142 Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0001001c: OUT HP EAPD Detect EAPD 0x2: EAPD Pin Default 0x03211020: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=02, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x02 0x03* Node 0x22 [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] Connection: 5 0x19 0x1a 0x1b 0x1d 0x13 Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 5 0x19 0x1a 0x1b 0x1d 0x12 Node 0x24 [Audio Selector] wcaps 0x300101: Stereo Connection: 3 0x12* 0x13 0x18 Node 0x25 [Audio Selector] wcaps 0x300101: Stereo Connection: 2 0x12* 0x13 Thank you, Adam.