You are not logged in.

#1 2025-11-20 16:00:07

ManDeJan
Member
Registered: 2025-11-20
Posts: 1

Wrong microphone configuration on Lenovo Yoga 7 2-in-1 14ILL10 (83JQ)

The microphone on my laptop shows up as a 4 channel input. The problem is that applications try use the mic as a generic 4 input channel microphone, even though I think the channels serve different purposes. By recording some audio and listening to the channels individually I've observed the following

Channel 1 — Sits left of the webcam, sounds clear and good to me
Channel 2 — Sits to the right of the webcam, sounds *extremely* noisy, this is a problem when I use the mic as is
Channel 3 — Is positioned on the front edge of the laptop, in the center just below the trackpad, sounds good to me but picks up a lot of keyboard/trackpad noise
Channel 4 — Is positioned inside the left speaker grill, sounds not great either, picks up a lot of sound from the speakers

As a workaround, I've created a pipewire config for my user, that creates a loopback source that only captures the first channel from the mic array, that at least removes the extremely noisy mic channels and works okay-ish.

I think, however, I may be missing a driver, or perhaps something has been misconfigured.

Logs

$ cat /sys/class/sound/hwC0D0/chip_name

ALC287
$ pactl list sources

Source #65
        State: SUSPENDED
        Name: alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source
        Description: Lunar Lake-M HD Audio Controller Digital Microphone
        Driver: PipeWire
        Sample Specification: s32le 4ch 48000Hz
        Channel Map: front-left,front-right,rear-left,rear-right
        Owner Module: 4294967295
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB,   rear-left: 65536 / 100% / 0.00 dB,   rear-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor of Sink: n/a
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Properties:
                alsa.card = "0"
                alsa.card_name = "sof-hda-dsp"
                alsa.class = "generic"
                alsa.components = "HDA:80862820,80860101,00100000 HDA:10ec0287,17aa3916,00100002 cfg-dmics:4 iec61937-pcm:5,4,3"
                alsa.device = "6"
                alsa.driver_name = "snd_soc_skl_hda_dsp"
                alsa.id = "DMIC Raw (*)"
                alsa.long_card_name = "LENOVO-83JQ-Yoga72_in_114ILL10-LNVNB161216"
                alsa.mixer_device = "_ucm0001.hw:sofhdadsp"
                alsa.mixer_name = "Realtek ALC287"
                alsa.name = ""
                alsa.resolution_bits = "32"
                alsa.subclass = "generic-mix"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.sync.id = "00000000:00000000:00000000:00000000"
                api.alsa.card.longname = "LENOVO-83JQ-Yoga72_in_114ILL10-LNVNB161216"
                api.alsa.card.name = "sof-hda-dsp"
                api.alsa.open.ucm = "true"
                api.alsa.path = "hw:sofhdadsp,6"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "capture"
                audio.channels = "4"
                audio.position = "FL,FR,RL,RR"
                card.profile.device = "5"
                device.api = "alsa"
                device.bus = "pci"
                device.class = "sound"
                device.icon_name = "audio-input-microphone"
                device.id = "47"
                device.profile.description = "Digital Microphone"
                device.profile.name = "HiFi: Mic1: source"
                device.routes = "1"
                factory.name = "api.alsa.pcm.source"
                media.class = "Audio/Source"
                device.description = "Lunar Lake-M HD Audio Controller"
                node.name = "alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source"
                node.nick = "Digital Microphone"
                node.pause-on-idle = "false"
                object.path = "alsa:acp:sofhdadsp:5:capture"
                port.group = "capture"
                priority.driver = "1648"
                priority.session = "1648"
                factory.id = "19"
                clock.quantum-limit = "8192"
                client.id = "45"
                node.driver = "true"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "65"
                object.serial = "65"
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "0"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
                device.enum.api = "udev"
                device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
                device.nick = "sof-hda-dsp"
                device.plugged.usec = "3525711"
                device.product.id = "0xa828"
                device.product.name = "Lunar Lake-M HD Audio Controller"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                spa.object.id = "2"
                device.string = "0"
        Ports:
                [In] Mic1: Digital Microphone (type: Mic, priority: 100, availability unknown)
        Active Port: [In] Mic1
        Formats:
                pcm

And dmesg output:

$ sudo dmesg | grep -i sof-

[    3.120868] sof-audio-pci-intel-lnl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    3.120885] sof-audio-pci-intel-lnl 0000:00:1f.3: enabling device (0000 -> 0002)
[    3.120983] sof-audio-pci-intel-lnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[    3.121044] sof-audio-pci-intel-lnl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
[    3.127781] sof-audio-pci-intel-lnl 0000:00:1f.3: use msi interrupt mode
[    3.165984] sof-audio-pci-intel-lnl 0000:00:1f.3: hda codecs found, mask 5
[    3.165988] sof-audio-pci-intel-lnl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[    3.165989] sof-audio-pci-intel-lnl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[    3.165990] sof-audio-pci-intel-lnl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
[    3.165992] sof-audio-pci-intel-lnl 0000:00:1f.3: DMICs detected in NHLT tables: 4
[    3.168780] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware paths/files for ipc type 1:
[    3.168782] sof-audio-pci-intel-lnl 0000:00:1f.3:  Firmware file:     intel/sof-ipc4/lnl/sof-lnl.ri
[    3.168782] sof-audio-pci-intel-lnl 0000:00:1f.3:  Firmware lib path: intel/sof-ipc4-lib/lnl
[    3.168783] sof-audio-pci-intel-lnl 0000:00:1f.3:  Topology file:     intel/sof-ipc4-tplg/sof-hda-generic-4ch.tplg
[    3.169096] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1
[    3.432810] sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.13.0.1
[    3.451285] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[    3.451704] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1
[    3.538140] input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input21
[    3.538256] input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input22
[    3.538363] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input23
[    3.538425] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input24
[    3.538502] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input25

and lspci output

# lspci -vvv
...
00:1f.3 Multimedia audio controller: Intel Corporation Lunar Lake-M HD Audio Controller (rev 10)
        Subsystem: Lenovo Device 383a
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 32, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 191
        Region 0: Memory at 3013200000 (64-bit, non-prefetchable) [size=512K]
        Region 4: Memory at 3013000000 (64-bit, non-prefetchable) [size=2M]
        Capabilities: [50] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
                Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
        Capabilities: [c0] Vendor Specific Information: Intel <unknown>
        Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
                Address: 00000000fee10000  Data: 0025
        Kernel driver in use: sof-audio-pci-intel-lnl
        Kernel modules: snd_sof_pci_intel_lnl, snd_hda_intel
...

and finally

# nhlt-dmic-info

{
        "mics-data-version":1,
        "mics-data-source":"acpi-nhlt",
        "mics":[
                {
                        "channel":0,
                        "type":"vendor",
                        "location":"laptop-front-panel",
                        "horizontal-offset":-25,
                        "freq-low-band":100,
                        "freq-high-band":20000,
                        "vertical-angle-begin":-60,
                        "vertical-angle-end":60,
                        "horizontal-angle-begin":-50,
                        "horizontal-angle-end":50
                },
                {
                        "channel":1,
                        "type":"vendor",
                        "location":"laptop-front-panel",
                        "horizontal-offset":25,
                        "freq-low-band":100,
                        "freq-high-band":20000,
                        "vertical-angle-begin":-60,
                        "vertical-angle-end":60,
                        "horizontal-angle-begin":-50,
                        "horizontal-angle-end":50
                },
                {
                        "channel":2,
                        "type":"vendor",
                        "location":"laptop-front-panel",
                        "speaker-distance":225,
                        "vertical-offset":-222,
                        "freq-low-band":100,
                        "freq-high-band":20000,
                        "vertical-angle-begin":-60,
                        "vertical-angle-end":60,
                        "horizontal-angle-begin":-50,
                        "horizontal-angle-end":50
                },
                {
                        "channel":3,
                        "type":"vendor",
                        "location":"laptop-front-panel",
                        "speaker-distance":70,
                        "horizontal-offset":-151,
                        "vertical-offset":-222,
                        "freq-low-band":100,
                        "freq-high-band":20000,
                        "elevation-angle":90,
                        "vertical-angle-begin":-60,
                        "vertical-angle-end":60,
                        "horizontal-angle-begin":-50,
                        "horizontal-angle-end":50
                }
        ]
}

Offline

Board footer

Powered by FluxBB