From 9accaa72386f1682113e4a27aa5e4f6472f0f212 Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Thu, 12 Jun 2025 13:14:20 -0500 Subject: [PATCH] mb/google/poppy: Correct channel count for DMIC These boards only have 2 DMIC physically connected, and attempting to record from 4 channels vs 2 results in a large amount of background noise which drowns out the recording. Selecting the 2 channel DMIC shows audio on both channels and no noise. TEST=build/boot poppy variants, test built-in mic under Windows and Linux. Change-Id: I30d97fa1a25e8cefe05cedac5176bb74dad7f318 Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/88082 Tested-by: build bot (Jenkins) Reviewed-by: Sean Rhodes --- src/mainboard/google/poppy/Kconfig | 11 +++++------ src/mainboard/google/poppy/variants/atlas/nhlt.c | 6 +++--- src/mainboard/google/poppy/variants/baseboard/nhlt.c | 4 ---- src/mainboard/google/poppy/variants/nami/nhlt.c | 6 +++--- src/mainboard/google/poppy/variants/nautilus/nhlt.c | 6 +++--- src/mainboard/google/poppy/variants/nocturne/nhlt.c | 6 +++--- src/mainboard/google/poppy/variants/rammus/nhlt.c | 6 +++--- 7 files changed, 20 insertions(+), 25 deletions(-) diff --git a/src/mainboard/google/poppy/Kconfig b/src/mainboard/google/poppy/Kconfig index 3bc24a58d5..fea28b4f25 100644 --- a/src/mainboard/google/poppy/Kconfig +++ b/src/mainboard/google/poppy/Kconfig @@ -138,37 +138,36 @@ config DRIVER_TPM_SPI_BUS config INCLUDE_NHLT_BLOBS bool "Include blobs for audio." select NHLT_DMIC_2CH - select NHLT_DMIC_4CH select NHLT_MAX98927 select NHLT_RT5663 config INCLUDE_NHLT_BLOBS_ATLAS bool "Include blobs for atlas audio." select NHLT_DA7219 - select NHLT_DMIC_4CH + select NHLT_DMIC_2CH select NHLT_MAX98373 config INCLUDE_NHLT_BLOBS_NAUTILUS bool "Include blobs for nautilus audio." select NHLT_DA7219 - select NHLT_DMIC_4CH + select NHLT_DMIC_2CH select NHLT_MAX98357 config INCLUDE_NHLT_BLOBS_NAMI bool "Include blobs for nami audio." select NHLT_DA7219 - select NHLT_DMIC_4CH + select NHLT_DMIC_2CH select NHLT_MAX98357 config INCLUDE_NHLT_BLOBS_NOCTURNE bool "Include blobs for nocturne audio." - select NHLT_DMIC_4CH + select NHLT_DMIC_2CH select NHLT_MAX98373 config INCLUDE_NHLT_BLOBS_RAMMUS bool "Include blobs for rammus audio." select NHLT_DA7219 - select NHLT_DMIC_4CH + select NHLT_DMIC_2CH select NHLT_MAX98927 config MAINBOARD_DIR diff --git a/src/mainboard/google/poppy/variants/atlas/nhlt.c b/src/mainboard/google/poppy/variants/atlas/nhlt.c index ee642c0fc6..b9b7c20ffb 100644 --- a/src/mainboard/google/poppy/variants/atlas/nhlt.c +++ b/src/mainboard/google/poppy/variants/atlas/nhlt.c @@ -7,9 +7,9 @@ void variant_nhlt_init(struct nhlt *nhlt) { - /* 4 Channel DMIC array. */ - if (nhlt_soc_add_dmic_array(nhlt, 4)) - printk(BIOS_ERR, "Couldn't add 4CH DMIC arrays.\n"); + /* 2 Channel DMIC array. */ + if (nhlt_soc_add_dmic_array(nhlt, 2)) + printk(BIOS_ERR, "Couldn't add 2CH DMIC arrays.\n"); /* Dialog DA7219 Headset codec. */ if (nhlt_soc_add_da7219(nhlt, AUDIO_LINK_SSP1)) diff --git a/src/mainboard/google/poppy/variants/baseboard/nhlt.c b/src/mainboard/google/poppy/variants/baseboard/nhlt.c index b3ead3b3de..c281096e95 100644 --- a/src/mainboard/google/poppy/variants/baseboard/nhlt.c +++ b/src/mainboard/google/poppy/variants/baseboard/nhlt.c @@ -11,10 +11,6 @@ void __weak variant_nhlt_init(struct nhlt *nhlt) if (nhlt_soc_add_dmic_array(nhlt, 2)) printk(BIOS_ERR, "Couldn't add 2CH DMIC array.\n"); - /* 4 Channel DMIC array. */ - if (nhlt_soc_add_dmic_array(nhlt, 4)) - printk(BIOS_ERR, "Couldn't add 4CH DMIC arrays.\n"); - /* Maxim MAX98927 Smart Amps for left and right channel */ /* Render time_slot is 0 and feedback time_slot is 2 */ if (nhlt_soc_add_max98927(nhlt, AUDIO_LINK_SSP0, 0, 2)) diff --git a/src/mainboard/google/poppy/variants/nami/nhlt.c b/src/mainboard/google/poppy/variants/nami/nhlt.c index 5cd8e5ab60..1fc379efb3 100644 --- a/src/mainboard/google/poppy/variants/nami/nhlt.c +++ b/src/mainboard/google/poppy/variants/nami/nhlt.c @@ -7,9 +7,9 @@ void variant_nhlt_init(struct nhlt *nhlt) { - /* 4 Channel DMIC array. */ - if (nhlt_soc_add_dmic_array(nhlt, 4)) - printk(BIOS_ERR, "Couldn't add 4CH DMIC array.\n"); + /* 2 Channel DMIC array. */ + if (nhlt_soc_add_dmic_array(nhlt, 2)) + printk(BIOS_ERR, "Couldn't add 2CH DMIC array.\n"); /* Dialog DA7219 Headset codec. */ if (nhlt_soc_add_da7219(nhlt, AUDIO_LINK_SSP1)) diff --git a/src/mainboard/google/poppy/variants/nautilus/nhlt.c b/src/mainboard/google/poppy/variants/nautilus/nhlt.c index ed44b8466c..fb4e466c26 100644 --- a/src/mainboard/google/poppy/variants/nautilus/nhlt.c +++ b/src/mainboard/google/poppy/variants/nautilus/nhlt.c @@ -7,9 +7,9 @@ void variant_nhlt_init(struct nhlt *nhlt) { - /* 4 Channel DMIC array. */ - if (nhlt_soc_add_dmic_array(nhlt, 4)) - printk(BIOS_ERR, "Couldn't add 4CH DMIC array.\n"); + /* 2 Channel DMIC array. */ + if (nhlt_soc_add_dmic_array(nhlt, 2)) + printk(BIOS_ERR, "Couldn't add 2CH DMIC array.\n"); /* Dialog DA7219 Headset codec. */ if (nhlt_soc_add_da7219(nhlt, AUDIO_LINK_SSP1)) diff --git a/src/mainboard/google/poppy/variants/nocturne/nhlt.c b/src/mainboard/google/poppy/variants/nocturne/nhlt.c index a3b239932c..03a14f4128 100644 --- a/src/mainboard/google/poppy/variants/nocturne/nhlt.c +++ b/src/mainboard/google/poppy/variants/nocturne/nhlt.c @@ -7,9 +7,9 @@ void variant_nhlt_init(struct nhlt *nhlt) { - /* 4 Channel DMIC array. */ - if (nhlt_soc_add_dmic_array(nhlt, 4)) - printk(BIOS_ERR, "Couldn't add 4CH DMIC array.\n"); + /* 2 Channel DMIC array. */ + if (nhlt_soc_add_dmic_array(nhlt, 2)) + printk(BIOS_ERR, "Couldn't add 2CH DMIC array.\n"); /* MAXIM Smart Amps for left and right speakers. */ /* Render time_slot is 0 and feedback time_slot is 2 */ diff --git a/src/mainboard/google/poppy/variants/rammus/nhlt.c b/src/mainboard/google/poppy/variants/rammus/nhlt.c index 49a3f7a11a..0f92728b42 100644 --- a/src/mainboard/google/poppy/variants/rammus/nhlt.c +++ b/src/mainboard/google/poppy/variants/rammus/nhlt.c @@ -7,9 +7,9 @@ void variant_nhlt_init(struct nhlt *nhlt) { - /* 4 Channel DMIC array. */ - if (nhlt_soc_add_dmic_array(nhlt, 4)) - printk(BIOS_ERR, "Couldn't add 4CH DMIC array.\n"); + /* 2 Channel DMIC array. */ + if (nhlt_soc_add_dmic_array(nhlt, 2)) + printk(BIOS_ERR, "Couldn't add 2CH DMIC array.\n"); /* Dialog DA7219 Headset codec. */ if (nhlt_soc_add_da7219(nhlt, AUDIO_LINK_SSP1))