From 98e0ff1e4b94dbbd07049bbc50da2f4ce4b3603b Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Mon, 27 Oct 2025 20:07:32 +0000 Subject: [PATCH] mb/starlabs/*: Move DMIC disabling code to common dir Move the code that disables the DMIC based on the option table to the common directory, as it's pretty much the same for all boards. Drop the check for the codec ID, as it's pointless. Change-Id: I55dd8f5f65908f5c4605001893003209f85cb139 Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/89777 Tested-by: build bot (Jenkins) Reviewed-by: Matt DeVillier --- src/mainboard/starlabs/common/Kconfig | 2 ++ src/mainboard/starlabs/common/Makefile.mk | 1 + src/mainboard/starlabs/common/hda/Kconfig | 7 +++++ src/mainboard/starlabs/common/hda/Makefile.mk | 3 +++ src/mainboard/starlabs/common/hda/dmic.c | 21 +++++++++++++++ src/mainboard/starlabs/starbook/Kconfig | 1 + src/mainboard/starlabs/starbook/Makefile.mk | 1 - src/mainboard/starlabs/starbook/hda_verb.c | 27 ------------------- src/mainboard/starlabs/starfighter/Kconfig | 1 + .../starlabs/starfighter/Makefile.mk | 1 - src/mainboard/starlabs/starfighter/hda_verb.c | 26 ------------------ src/mainboard/starlabs/starlite_adl/Kconfig | 1 + .../starlabs/starlite_adl/Makefile.mk | 1 - .../starlabs/starlite_adl/hda_verb.c | 26 ------------------ 14 files changed, 37 insertions(+), 82 deletions(-) create mode 100644 src/mainboard/starlabs/common/hda/Kconfig create mode 100644 src/mainboard/starlabs/common/hda/Makefile.mk create mode 100644 src/mainboard/starlabs/common/hda/dmic.c delete mode 100644 src/mainboard/starlabs/starbook/hda_verb.c delete mode 100644 src/mainboard/starlabs/starfighter/hda_verb.c delete mode 100644 src/mainboard/starlabs/starlite_adl/hda_verb.c diff --git a/src/mainboard/starlabs/common/Kconfig b/src/mainboard/starlabs/common/Kconfig index 4670672cb7..07239c8904 100644 --- a/src/mainboard/starlabs/common/Kconfig +++ b/src/mainboard/starlabs/common/Kconfig @@ -8,6 +8,8 @@ config MB_COMMON_DIR string default "starlabs/common" +source "src/mainboard/starlabs/common/hda/Kconfig" + endmenu endif diff --git a/src/mainboard/starlabs/common/Makefile.mk b/src/mainboard/starlabs/common/Makefile.mk index 966914673d..07ac8e9640 100644 --- a/src/mainboard/starlabs/common/Makefile.mk +++ b/src/mainboard/starlabs/common/Makefile.mk @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only subdirs-$(CONFIG_VENDOR_STARLABS) += cfr +subdirs-$(CONFIG_VENDOR_STARLABS) += hda subdirs-$(CONFIG_VENDOR_STARLABS) += pin_mux subdirs-$(CONFIG_VENDOR_STARLABS) += smbios diff --git a/src/mainboard/starlabs/common/hda/Kconfig b/src/mainboard/starlabs/common/hda/Kconfig new file mode 100644 index 0000000000..984616f94e --- /dev/null +++ b/src/mainboard/starlabs/common/hda/Kconfig @@ -0,0 +1,7 @@ +## SPDX-License-Identifier: GPL-2.0-only + +config HAVE_HDA_DMIC + bool + help + Select if the board has a DMIC and to allow disabling it via + the option API. diff --git a/src/mainboard/starlabs/common/hda/Makefile.mk b/src/mainboard/starlabs/common/hda/Makefile.mk new file mode 100644 index 0000000000..c6f53539f7 --- /dev/null +++ b/src/mainboard/starlabs/common/hda/Makefile.mk @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only + +ramstage-$(CONFIG_HAVE_HDA_DMIC) += dmic.c diff --git a/src/mainboard/starlabs/common/hda/dmic.c b/src/mainboard/starlabs/common/hda/dmic.c new file mode 100644 index 0000000000..cf1b243866 --- /dev/null +++ b/src/mainboard/starlabs/common/hda/dmic.c @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include +#include + +static const uint32_t override_verb[] = { + AZALIA_PIN_CFG(0, ALC269_DMIC12, AZALIA_PIN_CFG_NC(0)), +}; + +static void disable_microphone(uint8_t *base) +{ + azalia_program_verb_table(base, override_verb, ARRAY_SIZE(override_verb)); +} + +void mainboard_azalia_program_runtime_verbs(uint8_t *base, uint32_t viddid) +{ + if (get_uint_option("microphone", 1) == 0) + disable_microphone(base); +} diff --git a/src/mainboard/starlabs/starbook/Kconfig b/src/mainboard/starlabs/starbook/Kconfig index 0853c1873d..244bcfb195 100644 --- a/src/mainboard/starlabs/starbook/Kconfig +++ b/src/mainboard/starlabs/starbook/Kconfig @@ -12,6 +12,7 @@ config BOARD_STARLABS_STARBOOK_SERIES select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES select HAVE_CMOS_DEFAULT + select HAVE_HDA_DMIC select HAVE_OPTION_TABLE select INTEL_GMA_HAVE_VBT select INTEL_LPSS_UART_FOR_CONSOLE diff --git a/src/mainboard/starlabs/starbook/Makefile.mk b/src/mainboard/starlabs/starbook/Makefile.mk index 1a8996f1b2..a51e1d5128 100644 --- a/src/mainboard/starlabs/starbook/Makefile.mk +++ b/src/mainboard/starlabs/starbook/Makefile.mk @@ -11,6 +11,5 @@ verstage-$(CONFIG_VBOOT) += vboot.c romstage-$(CONFIG_VBOOT) += vboot.c ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c -ramstage-y += hda_verb.c ramstage-y += mainboard.c ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads diff --git a/src/mainboard/starlabs/starbook/hda_verb.c b/src/mainboard/starlabs/starbook/hda_verb.c deleted file mode 100644 index 699ff34102..0000000000 --- a/src/mainboard/starlabs/starbook/hda_verb.c +++ /dev/null @@ -1,27 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include -#include - -#define AZALIA_CODEC_ALC256 0x10ec0256 -#define AZALIA_CODEC_ALC269 0x10ec0269 - -static const u32 override_verb[] = { - AZALIA_PIN_CFG(0, 0x12, AZALIA_PIN_CFG_NC(0)), -}; - -static void disable_microphone(u8 *base) -{ - azalia_program_verb_table(base, override_verb, ARRAY_SIZE(override_verb)); -} - -void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid) -{ - if (viddid == AZALIA_CODEC_ALC256 || viddid == AZALIA_CODEC_ALC269) { - printk(BIOS_DEBUG, "CMOS: viddid = %08x\n", viddid); - if (get_uint_option("microphone", 1) == 0) - disable_microphone(base); - } -} diff --git a/src/mainboard/starlabs/starfighter/Kconfig b/src/mainboard/starlabs/starfighter/Kconfig index d29427f373..28838aacd4 100644 --- a/src/mainboard/starlabs/starfighter/Kconfig +++ b/src/mainboard/starlabs/starfighter/Kconfig @@ -21,6 +21,7 @@ config BOARD_STARLABS_STARFIGHTER_SERIES select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES select HAVE_CMOS_DEFAULT + select HAVE_HDA_DMIC select HAVE_OPTION_TABLE select HAVE_SPD_IN_CBFS select INTEL_GMA_HAVE_VBT diff --git a/src/mainboard/starlabs/starfighter/Makefile.mk b/src/mainboard/starlabs/starfighter/Makefile.mk index 59e8f76e8f..535c3237a6 100644 --- a/src/mainboard/starlabs/starfighter/Makefile.mk +++ b/src/mainboard/starlabs/starfighter/Makefile.mk @@ -7,6 +7,5 @@ subdirs-y += variants/$(VARIANT_DIR) bootblock-y += bootblock.c ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c -ramstage-y += hda_verb.c ramstage-y += mainboard.c ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads diff --git a/src/mainboard/starlabs/starfighter/hda_verb.c b/src/mainboard/starlabs/starfighter/hda_verb.c deleted file mode 100644 index 0aec559a03..0000000000 --- a/src/mainboard/starlabs/starfighter/hda_verb.c +++ /dev/null @@ -1,26 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include -#include - -#define AZALIA_CODEC_ALC256 0x10ec0256 - -static const u32 override_verb[] = { - AZALIA_PIN_CFG(0, 0x12, 0x411111f0), -}; - -static void disable_microphone(u8 *base) -{ - azalia_program_verb_table(base, override_verb, ARRAY_SIZE(override_verb)); -} - -void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid) -{ - if (viddid == AZALIA_CODEC_ALC256) { - printk(BIOS_DEBUG, "CMOS: viddid = %08x\n", viddid); - if (get_uint_option("microphone", 1) == 0) - disable_microphone(base); - } -} diff --git a/src/mainboard/starlabs/starlite_adl/Kconfig b/src/mainboard/starlabs/starlite_adl/Kconfig index 638fe72d0e..d14b441be1 100644 --- a/src/mainboard/starlabs/starlite_adl/Kconfig +++ b/src/mainboard/starlabs/starlite_adl/Kconfig @@ -17,6 +17,7 @@ config BOARD_STARLABS_STARLITE_SERIES select EC_STARLABS_POWER_LED select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES + select HAVE_HDA_DMIC select HAVE_INTEL_PTT select HAVE_OPTION_TABLE select HAVE_SPD_IN_CBFS diff --git a/src/mainboard/starlabs/starlite_adl/Makefile.mk b/src/mainboard/starlabs/starlite_adl/Makefile.mk index 17c1dc2f4d..14842f76e4 100644 --- a/src/mainboard/starlabs/starlite_adl/Makefile.mk +++ b/src/mainboard/starlabs/starlite_adl/Makefile.mk @@ -11,5 +11,4 @@ verstage-$(CONFIG_VBOOT) += vboot.c romstage-$(CONFIG_VBOOT) += vboot.c ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c -ramstage-y += hda_verb.c ramstage-y += mainboard.c diff --git a/src/mainboard/starlabs/starlite_adl/hda_verb.c b/src/mainboard/starlabs/starlite_adl/hda_verb.c deleted file mode 100644 index 787e55a17b..0000000000 --- a/src/mainboard/starlabs/starlite_adl/hda_verb.c +++ /dev/null @@ -1,26 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include -#include - -#define AZALIA_CODEC_ALC269 0x10ec0269 - -static const u32 override_verb[] = { - AZALIA_PIN_CFG(0, 0x12, 0x00000000), -}; - -static void disable_microphone(u8 *base) -{ - azalia_program_verb_table(base, override_verb, ARRAY_SIZE(override_verb)); -} - -void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid) -{ - if (viddid == AZALIA_CODEC_ALC269) { - printk(BIOS_DEBUG, "CMOS: viddid = %08x\n", viddid); - if (get_uint_option("microphone", 1) == 0) - disable_microphone(base); - } -}