diff --git a/src/mainboard/asus/h61-series/Kconfig b/src/mainboard/asus/h61-series/Kconfig index 6f21b75456..d09ed1e244 100644 --- a/src/mainboard/asus/h61-series/Kconfig +++ b/src/mainboard/asus/h61-series/Kconfig @@ -2,7 +2,6 @@ config BOARD_ASUS_H61_SERIES bool - select AZALIA_USE_LEGACY_VERB_TABLE select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES select INTEL_GMA_HAVE_VBT diff --git a/src/mainboard/asus/h61-series/variants/h61m-a_usb3/hda_verb.c b/src/mainboard/asus/h61-series/variants/h61m-a_usb3/hda_verb.c index b9177d0f5a..df1fb43b95 100644 --- a/src/mainboard/asus/h61-series/variants/h61m-a_usb3/hda_verb.c +++ b/src/mainboard/asus/h61-series/variants/h61m-a_usb3/hda_verb.c @@ -3,10 +3,7 @@ #include #include -const u32 cim_verb_data[] = { - 0x10ec0887, /* Codec Vendor / Device ID: Realtek */ - 0x10438445, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc887_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438445), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT2, 0x40330000), AZALIA_PIN_CFG(0, ALC887_DMIC_LR, AZALIA_PIN_CFG_NC(0)), @@ -22,10 +19,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, ALC887_PC_BEEP, 0x4024c601), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT1, AZALIA_PIN_CFG_NC(0)), AZALIA_PIN_CFG(0, ALC887_SPDIF_IN, AZALIA_PIN_CFG_NC(0)), +}; - 0x8086281c, /* Codec Vendor / Device ID: Intel */ - 0x80860101, /* Subsystem ID */ - 10, /* Number of 4 dword sets */ +static const u32 intel_display_audio_1_verbs[] = { AZALIA_SUBVENDOR(2, 0x80860101), AZALIA_PIN_CFG(2, 0x04, 0x18560010), AZALIA_PIN_CFG(2, 0x06, 0x18560010), @@ -36,17 +32,52 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(2, 0x0d, 0x18560010), AZALIA_PIN_CFG(2, 0x0e, 0x18560010), AZALIA_PIN_CFG(2, 0x0f, 0x18560010), +}; - 0x80862805, /* Codec Vendor / Device ID: Intel */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_2_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x58560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), AZALIA_PIN_CFG(3, 0x07, 0x18560030), - }; const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC887", + .vendor_id = 0x10ec0887, + .subsystem_id = 0x10438445, + .address = 0, + .verbs = realtek_alc887_verbs, + .verb_count = ARRAY_SIZE(realtek_alc887_verbs), + }, + { + /* + * TODO: This seems out of place, the vendor ID suggests this + * codec is an Alder Lake P Intel Display Audio[1], and + * the user manual[2] does not mention this codec. Could someone + * with this board confirm what this is? + * + * [1] Linux kernel: sound/hda/codecs/hdmi/intelhdmi.c:789 + * [2] H61M-A/USB3 User's Manual (English), Version E8184 + */ + .name = "Intel Display Audio #1 (HDMI/DP)", + .vendor_id = 0x8086281c, + .subsystem_id = 0x80860101, + .address = 2, + .verbs = intel_display_audio_1_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_1_verbs), + }, + { + .name = "Intel Display Audio #2 (HDMI/DP)", + .vendor_id = 0x80862805, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_2_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_2_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/h61-series/variants/h61m-cs/hda_verb.c b/src/mainboard/asus/h61-series/variants/h61m-cs/hda_verb.c index 956a716c76..c2226c5d4b 100644 --- a/src/mainboard/asus/h61-series/variants/h61m-cs/hda_verb.c +++ b/src/mainboard/asus/h61-series/variants/h61m-cs/hda_verb.c @@ -4,10 +4,7 @@ #include #include -const u32 cim_verb_data[] = { - 0x10ec0887, /* Codec Vendor / Device ID: Realtek */ - 0x10438445, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc887_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438445), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT2, 0x40330000), AZALIA_PIN_CFG(0, ALC887_DMIC_LR, AZALIA_PIN_CFG_NC(0)), @@ -27,4 +24,16 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC887", + .vendor_id = 0x10ec0887, + .subsystem_id = 0x10438445, + .address = 0, + .verbs = realtek_alc887_verbs, + .verb_count = ARRAY_SIZE(realtek_alc887_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/h61-series/variants/p8h61-m_lx/hda_verb.c b/src/mainboard/asus/h61-series/variants/p8h61-m_lx/hda_verb.c index 5647a31c96..b351ed58b3 100644 --- a/src/mainboard/asus/h61-series/variants/p8h61-m_lx/hda_verb.c +++ b/src/mainboard/asus/h61-series/variants/p8h61-m_lx/hda_verb.c @@ -4,10 +4,7 @@ #include #include -const u32 cim_verb_data[] = { - 0x10ec0887, /* Realtek ALC887-VD */ - 0x10438445, /* Subsystem ID */ - 15, /* Number of entries */ +static const u32 realtek_alc887_vd_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438445), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT2, 0x99430130), AZALIA_PIN_CFG(0, ALC887_DMIC_LR, AZALIA_PIN_CFG_NC(0)), @@ -27,4 +24,16 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC887-VD", + .vendor_id = 0x10ec0887, + .subsystem_id = 0x10438445, + .address = 0, + .verbs = realtek_alc887_vd_verbs, + .verb_count = ARRAY_SIZE(realtek_alc887_vd_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/h61-series/variants/p8h61-m_lx3_r2_0/hda_verb.c b/src/mainboard/asus/h61-series/variants/p8h61-m_lx3_r2_0/hda_verb.c index 7988e2b4ad..ef63e3e9d1 100644 --- a/src/mainboard/asus/h61-series/variants/p8h61-m_lx3_r2_0/hda_verb.c +++ b/src/mainboard/asus/h61-series/variants/p8h61-m_lx3_r2_0/hda_verb.c @@ -2,10 +2,7 @@ #include -const u32 cim_verb_data[] = { - 0x11060397, /* Codec Vendor / Device ID: VIA VT1708S */ - 0x10438415, /* Subsystem ID */ - 12, /* Number of 4 dword sets */ +static const u32 via_vt1708s_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438415), AZALIA_PIN_CFG(0, 0x19, 0x410110f0), AZALIA_PIN_CFG(0, 0x1a, 0x01a19036), @@ -22,4 +19,16 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "VIA VT1708S", + .vendor_id = 0x11060397, + .subsystem_id = 0x10438415, + .address = 0, + .verbs = via_vt1708s_verbs, + .verb_count = ARRAY_SIZE(via_vt1708s_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/h61-series/variants/p8h61-m_pro/hda_verb.c b/src/mainboard/asus/h61-series/variants/p8h61-m_pro/hda_verb.c index e29bdcae14..ee94e3368e 100644 --- a/src/mainboard/asus/h61-series/variants/p8h61-m_pro/hda_verb.c +++ b/src/mainboard/asus/h61-series/variants/p8h61-m_pro/hda_verb.c @@ -3,10 +3,7 @@ #include #include -const u32 cim_verb_data[] = { - 0x10ec0887, /* Codec Vendor / Device ID: Realtek */ - 0x10438444, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc887_vd_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438444), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT2, 0x99430140), AZALIA_PIN_CFG(0, ALC887_DMIC_LR, AZALIA_PIN_CFG_NC(0)), @@ -22,10 +19,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, ALC887_PC_BEEP, 0x4005e601), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT1, 0x01456130), AZALIA_PIN_CFG(0, ALC887_SPDIF_IN, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862805, /* Codec Vendor / Device ID: Intel */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x58560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), @@ -34,4 +30,24 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC887-VD", + .vendor_id = 0x10ec0887, + .subsystem_id = 0x10438444, + .address = 0, + .verbs = realtek_alc887_vd_verbs, + .verb_count = ARRAY_SIZE(realtek_alc887_vd_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862805, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/h61-series/variants/p8h61-m_pro_cm6630/hda_verb.c b/src/mainboard/asus/h61-series/variants/p8h61-m_pro_cm6630/hda_verb.c index 0aa95d00a3..7018c22ece 100644 --- a/src/mainboard/asus/h61-series/variants/p8h61-m_pro_cm6630/hda_verb.c +++ b/src/mainboard/asus/h61-series/variants/p8h61-m_pro_cm6630/hda_verb.c @@ -3,10 +3,7 @@ #include #include -const u32 cim_verb_data[] = { - 0x10ec0887, /* Codec Vendor / Device ID: Realtek ALC887 */ - 0x10438444, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc887_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438444), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT2, 0x99430140), AZALIA_PIN_CFG(0, ALC887_DMIC_LR, AZALIA_PIN_CFG_NC(0)), @@ -22,10 +19,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, ALC887_PC_BEEP, 0x4005e601), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT1, 0x01456130), AZALIA_PIN_CFG(0, ALC887_SPDIF_IN, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862805, /* Codec Vendor / Device ID: Intel HDMI */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x58560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), @@ -34,4 +30,24 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC887", + .vendor_id = 0x10ec0887, + .subsystem_id = 0x10438444, + .address = 0, + .verbs = realtek_alc887_verbs, + .verb_count = ARRAY_SIZE(realtek_alc887_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862805, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/h61-series/variants/p8h67-i_deluxe/hda_verb.c b/src/mainboard/asus/h61-series/variants/p8h67-i_deluxe/hda_verb.c index 993767bcb7..7548c3addb 100644 --- a/src/mainboard/asus/h61-series/variants/p8h67-i_deluxe/hda_verb.c +++ b/src/mainboard/asus/h61-series/variants/p8h67-i_deluxe/hda_verb.c @@ -2,10 +2,7 @@ #include -const u32 cim_verb_data[] = { - 0x10ec0892, /* Codec Vendor / Device ID: Realtek */ - 0x1043848d, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc892_verbs[] = { AZALIA_SUBVENDOR(0, 0x1043848d), AZALIA_PIN_CFG(0, 0x11, 0x99430140), AZALIA_PIN_CFG(0, 0x12, AZALIA_PIN_CFG_NC(0)), @@ -21,10 +18,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, 0x1d, 0x4004c601), AZALIA_PIN_CFG(0, 0x1e, 0x01452130), AZALIA_PIN_CFG(0, 0x1f, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862805, /* Codec Vendor / Device ID: Intel */ - 0x80862805, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80862805), AZALIA_PIN_CFG(3, 0x05, 0x58560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), @@ -34,4 +30,24 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC892", + .vendor_id = 0x10ec0892, + .subsystem_id = 0x1043848d, + .address = 0, + .verbs = realtek_alc892_verbs, + .verb_count = ARRAY_SIZE(realtek_alc892_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862805, + .subsystem_id = 0x80862805, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/h610i-plus-d4/Kconfig b/src/mainboard/asus/h610i-plus-d4/Kconfig index 5d76d2b508..e4f7598066 100644 --- a/src/mainboard/asus/h610i-plus-d4/Kconfig +++ b/src/mainboard/asus/h610i-plus-d4/Kconfig @@ -1,7 +1,6 @@ ## SPDX-License-Identifier: GPL-2.0-only config BOARD_ASUS_H610I_PLUS_D4 - select AZALIA_USE_LEGACY_VERB_TABLE select BOARD_ROMSIZE_KB_16384 select DRIVERS_UART_8250IO select HAVE_ACPI_RESUME diff --git a/src/mainboard/asus/h610i-plus-d4/hda_verb.c b/src/mainboard/asus/h610i-plus-d4/hda_verb.c index 173845d32e..685e8fcd8b 100644 --- a/src/mainboard/asus/h610i-plus-d4/hda_verb.c +++ b/src/mainboard/asus/h610i-plus-d4/hda_verb.c @@ -2,10 +2,7 @@ #include -const u32 cim_verb_data[] = { - 0x10ec0897, // Vendor/Device ID: Realtek ALC897 - 0x10438803, // Subsystem ID - 15, +static const u32 realtek_alc897_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438803), AZALIA_PIN_CFG(0, 0x11, AZALIA_PIN_CFG_NC(0)), @@ -70,10 +67,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, 0x1d, 0x4048ee29), // does not describe a jack or internal device AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_CFG_NC(0)), AZALIA_PIN_CFG(0, 0x1f, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862815, // Vendor/Device ID: Intel Alderlake HDMI - 0x80860101, // Subsystem ID - 10, +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(2, 0x80860101), AZALIA_PIN_CFG(2, 0x04, AZALIA_PIN_DESC( @@ -160,4 +156,25 @@ const u32 cim_verb_data[] = { }; const u32 pc_beep_verbs[] = {}; + +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC897", + .vendor_id = 0x10ec0897, + .subsystem_id = 0x10438803, + .address = 0, + .verbs = realtek_alc897_verbs, + .verb_count = ARRAY_SIZE(realtek_alc897_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862815, + .subsystem_id = 0x80860101, + .address = 2, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/maximus_iv_gene-z/Kconfig b/src/mainboard/asus/maximus_iv_gene-z/Kconfig index 97a531fd3c..b3b081c43b 100644 --- a/src/mainboard/asus/maximus_iv_gene-z/Kconfig +++ b/src/mainboard/asus/maximus_iv_gene-z/Kconfig @@ -4,7 +4,6 @@ if BOARD_ASUS_MAXIMUS_IV_GENE_Z config BOARD_SPECIFIC_OPTIONS def_bool y - select AZALIA_USE_LEGACY_VERB_TABLE select BOARD_ROMSIZE_KB_8192 select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES diff --git a/src/mainboard/asus/maximus_iv_gene-z/hda_verb.c b/src/mainboard/asus/maximus_iv_gene-z/hda_verb.c index 11a14a2f3f..fd2abc36bd 100644 --- a/src/mainboard/asus/maximus_iv_gene-z/hda_verb.c +++ b/src/mainboard/asus/maximus_iv_gene-z/hda_verb.c @@ -3,10 +3,7 @@ #include #include -const u32 cim_verb_data[] = { - 0x10ec0889, /* Realtek ALC889 */ - 0x10ec0889, /* Subsystem ID */ - 15, /* Number of entries */ +static const u32 realtek_alc889_verbs[] = { AZALIA_SUBVENDOR(0, 0x10ec0889), AZALIA_PIN_CFG(0, 0x11, 0x414471f0), AZALIA_PIN_CFG(0, 0x12, 0x59a3112e), @@ -22,10 +19,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, 0x1d, 0x59f00190), AZALIA_PIN_CFG(0, 0x1e, 0x014471f0), AZALIA_PIN_CFG(0, 0x1f, 0x41c451f0), +}; - 0x80862805, /* Intel CougarPoint HDMI */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of entries */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x18560010), AZALIA_PIN_CFG(3, 0x06, 0x18560010), @@ -34,4 +30,24 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC889", + .vendor_id = 0x10ec0889, + .subsystem_id = 0x10ec0889, + .address = 0, + .verbs = realtek_alc889_verbs, + .verb_count = ARRAY_SIZE(realtek_alc889_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862805, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p5gc-mx/Kconfig b/src/mainboard/asus/p5gc-mx/Kconfig index 7fc801cc65..4f49dbbaa5 100644 --- a/src/mainboard/asus/p5gc-mx/Kconfig +++ b/src/mainboard/asus/p5gc-mx/Kconfig @@ -4,7 +4,6 @@ if BOARD_ASUS_P5GC_MX config BOARD_SPECIFIC_OPTIONS def_bool y - select AZALIA_USE_LEGACY_VERB_TABLE select CPU_INTEL_SOCKET_LGA775 select NORTHBRIDGE_INTEL_I945 select NORTHBRIDGE_INTEL_SUBTYPE_I945GC diff --git a/src/mainboard/asus/p5gc-mx/hda_verb.c b/src/mainboard/asus/p5gc-mx/hda_verb.c index 9da73841b9..b7901a2b9a 100644 --- a/src/mainboard/asus/p5gc-mx/hda_verb.c +++ b/src/mainboard/asus/p5gc-mx/hda_verb.c @@ -2,13 +2,7 @@ #include -const u32 cim_verb_data[] = { - /* coreboot specific header */ - 0x10ec0883, /* Vendor ID */ - 0x104382c7, /* Subsystem ID */ - 0x0000000c, /* Number of entries */ - - /* Pin Widget Verb Table */ +static const u32 realtek_alc662_verbs[] = { AZALIA_PIN_CFG(0, 0x14, 0x01014010), AZALIA_PIN_CFG(0, 0x15, AZALIA_PIN_CFG_NC(0)), AZALIA_PIN_CFG(0, 0x16, AZALIA_PIN_CFG_NC(0)), @@ -24,4 +18,17 @@ const u32 cim_verb_data[] = { }; const u32 pc_beep_verbs[0] = {}; + +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC662", + .vendor_id = 0x10ec0883, + .subsystem_id = 0x104382c7, + .address = 0, + .verbs = realtek_alc662_verbs, + .verb_count = ARRAY_SIZE(realtek_alc662_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p5qc/Kconfig b/src/mainboard/asus/p5qc/Kconfig index d5a2e6ecbd..c501b7a010 100644 --- a/src/mainboard/asus/p5qc/Kconfig +++ b/src/mainboard/asus/p5qc/Kconfig @@ -4,7 +4,6 @@ if BOARD_ASUS_P5QC || BOARD_ASUS_P5Q_PRO || BOARD_ASUS_P5QL_PRO || BOARD_ASUS_P5 config BOARD_SPECIFIC_OPTIONS def_bool y - select AZALIA_USE_LEGACY_VERB_TABLE select CPU_INTEL_SOCKET_LGA775 select NORTHBRIDGE_INTEL_X4X select SOUTHBRIDGE_INTEL_I82801JX diff --git a/src/mainboard/asus/p5qc/hda_verb.c b/src/mainboard/asus/p5qc/hda_verb.c index 9fc478fcf1..ce6cc0e0c7 100644 --- a/src/mainboard/asus/p5qc/hda_verb.c +++ b/src/mainboard/asus/p5qc/hda_verb.c @@ -2,14 +2,7 @@ #include -const u32 cim_verb_data[] = { - /* coreboot specific header */ - 0x10ec0888, - 0x104382fe, // Subsystem ID - 13, // Number of entries - - /* Pin Widget Verb Table */ - +static const u32 realtek_alc1200_verbs[] = { AZALIA_PIN_CFG(0, 0x11, 0x99430140), AZALIA_PIN_CFG(0, 0x14, 0x01014010), AZALIA_PIN_CFG(0, 0x15, 0x01011012), @@ -27,4 +20,16 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC1200", + .vendor_id = 0x10ec0888, + .subsystem_id = 0x104382fe, + .address = 0, + .verbs = realtek_alc1200_verbs, + .verb_count = ARRAY_SIZE(realtek_alc1200_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p5ql-em/Kconfig b/src/mainboard/asus/p5ql-em/Kconfig index f297d2974d..52ad800940 100644 --- a/src/mainboard/asus/p5ql-em/Kconfig +++ b/src/mainboard/asus/p5ql-em/Kconfig @@ -4,7 +4,6 @@ if BOARD_ASUS_P5QL_EM config BOARD_SPECIFIC_OPTIONS def_bool y - select AZALIA_USE_LEGACY_VERB_TABLE select CPU_INTEL_SOCKET_LGA775 select NORTHBRIDGE_INTEL_X4X select SOUTHBRIDGE_INTEL_I82801JX diff --git a/src/mainboard/asus/p5ql-em/hda_verb.c b/src/mainboard/asus/p5ql-em/hda_verb.c index 861b659527..8b80ae9e5f 100644 --- a/src/mainboard/asus/p5ql-em/hda_verb.c +++ b/src/mainboard/asus/p5ql-em/hda_verb.c @@ -2,13 +2,7 @@ #include -const u32 cim_verb_data[] = { - /* coreboot specific header */ - 0x10ec0888, - 0x104382fe, // Subsystem ID - 13, // Number of entries - - /* Pin Widget Verb Table */ +static const u32 realtek_alc1200_verbs[] = { AZALIA_PIN_CFG(0, 0x11, 0x99430130), AZALIA_PIN_CFG(0, 0x14, 0x01014010), AZALIA_PIN_CFG(0, 0x15, 0x01011012), @@ -22,15 +16,32 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, 0x1d, 0x4015e601), AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_CFG_NC(0)), AZALIA_PIN_CFG(0, 0x1f, AZALIA_PIN_CFG_NC(0)), +}; - /* HDMI audio */ - 0x80862803, - 0x80860101, - 1, - +static const u32 intel_display_audio_verbs[] = { AZALIA_PIN_CFG(1, 0x03, 0x18560010), }; const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC1200", + .vendor_id = 0x10ec0888, + .subsystem_id = 0x104382fe, + .address = 0, + .verbs = realtek_alc1200_verbs, + .verb_count = ARRAY_SIZE(realtek_alc1200_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862803, + .subsystem_id = 0x80860101, + .address = 1, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p5qpl-am/Kconfig b/src/mainboard/asus/p5qpl-am/Kconfig index aeafb4be4f..2359e324d8 100644 --- a/src/mainboard/asus/p5qpl-am/Kconfig +++ b/src/mainboard/asus/p5qpl-am/Kconfig @@ -4,7 +4,6 @@ if BOARD_ASUS_P5QPL_AM || BOARD_ASUS_P5G41T_M_LX config BOARD_SPECIFIC_OPTIONS def_bool y - select AZALIA_USE_LEGACY_VERB_TABLE select CPU_INTEL_SOCKET_LGA775 select NORTHBRIDGE_INTEL_X4X select SOUTHBRIDGE_INTEL_I82801GX diff --git a/src/mainboard/asus/p5qpl-am/hda_verb.c b/src/mainboard/asus/p5qpl-am/hda_verb.c index b49878a9a8..f1413543eb 100644 --- a/src/mainboard/asus/p5qpl-am/hda_verb.c +++ b/src/mainboard/asus/p5qpl-am/hda_verb.c @@ -3,15 +3,7 @@ #include #include -const u32 cim_verb_data[] = { - /* coreboot specific header */ - /* Realtek ALC662 rev1 */ - 0x10ec0887, /* Vendor ID */ - 0x1043840b, /* Subsystem ID */ - 14, /* Number of entries */ - - /* Pin Widget Verb Table */ - +static const u32 realtek_alc662_verbs[] = { AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT2, AZALIA_PIN_CFG_NC(0)), AZALIA_PIN_CFG(0, ALC887_DMIC_LR, AZALIA_PIN_CFG_NC(0)), AZALIA_PIN_CFG(0, ALC887_FRONT, 0x01014010), @@ -30,4 +22,16 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC662", + .vendor_id = 0x10ec0887, + .subsystem_id = 0x1043840b, + .address = 0, + .verbs = realtek_alc662_verbs, + .verb_count = ARRAY_SIZE(realtek_alc662_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p8x7x-series/Kconfig b/src/mainboard/asus/p8x7x-series/Kconfig index 6f1632e4be..cfff67a0dc 100644 --- a/src/mainboard/asus/p8x7x-series/Kconfig +++ b/src/mainboard/asus/p8x7x-series/Kconfig @@ -2,7 +2,6 @@ config BOARD_ASUS_P8X7X_SERIES bool - select AZALIA_USE_LEGACY_VERB_TABLE select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES select HAVE_CMOS_DEFAULT diff --git a/src/mainboard/asus/p8x7x-series/variants/p8c_ws/hda_verb.c b/src/mainboard/asus/p8x7x-series/variants/p8c_ws/hda_verb.c index 03430f1c35..7bf810d49b 100644 --- a/src/mainboard/asus/p8x7x-series/variants/p8c_ws/hda_verb.c +++ b/src/mainboard/asus/p8x7x-series/variants/p8c_ws/hda_verb.c @@ -2,10 +2,7 @@ #include -const u32 cim_verb_data[] = { - 0x10ec0892, /* Codec Vendor / Device ID: Realtek ALC892 */ - 0x104384fb, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc892_verbs[] = { AZALIA_SUBVENDOR(0, 0x104384fb), AZALIA_PIN_CFG(0, 0x11, 0x99430140), AZALIA_PIN_CFG(0, 0x12, AZALIA_PIN_CFG_NC(0)), @@ -26,4 +23,16 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC892", + .vendor_id = 0x10ec0892, + .subsystem_id = 0x104384fb, + .address = 0, + .verbs = realtek_alc892_verbs, + .verb_count = ARRAY_SIZE(realtek_alc892_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p8x7x-series/variants/p8h77-v/hda_verb.c b/src/mainboard/asus/p8x7x-series/variants/p8h77-v/hda_verb.c index f246af7018..4a7bf2edb3 100644 --- a/src/mainboard/asus/p8x7x-series/variants/p8h77-v/hda_verb.c +++ b/src/mainboard/asus/p8x7x-series/variants/p8h77-v/hda_verb.c @@ -2,10 +2,7 @@ #include -const u32 cim_verb_data[] = { - 0x11060397, /* Codec Vendor / Device ID: VIA VT1708S */ - 0x1043836c, /* Subsystem ID */ - 12, /* Number of 4 dword sets */ +static const u32 via_vt1708s_verbs[] = { AZALIA_SUBVENDOR(0, 0x1043836c), AZALIA_PIN_CFG(0, 0x19, 0x01011012), AZALIA_PIN_CFG(0, 0x1a, 0x01a19036), @@ -18,10 +15,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, 0x21, 0x074521f0), AZALIA_PIN_CFG(0, 0x22, 0x01016011), AZALIA_PIN_CFG(0, 0x23, 0x01012014), +}; - 0x80862806, /* Codec Vendor / Device ID: Intel HDMI */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x18560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), @@ -31,4 +27,24 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "VIA VT1708S", + .vendor_id = 0x11060397, + .subsystem_id = 0x1043836c, + .address = 0, + .verbs = via_vt1708s_verbs, + .verb_count = ARRAY_SIZE(via_vt1708s_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862806, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p8x7x-series/variants/p8z77-m/hda_verb.c b/src/mainboard/asus/p8x7x-series/variants/p8z77-m/hda_verb.c index 05efa2d5af..25a7a4c87d 100644 --- a/src/mainboard/asus/p8x7x-series/variants/p8z77-m/hda_verb.c +++ b/src/mainboard/asus/p8x7x-series/variants/p8z77-m/hda_verb.c @@ -6,10 +6,7 @@ #include -const u32 cim_verb_data[] = { - 0x10ec0887, /* Codec Vendor / Device ID: Realtek */ - 0x104384a8, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc887_verbs[] = { AZALIA_SUBVENDOR(0, 0x104384a8), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT2, 0x90430130), AZALIA_PIN_CFG(0, ALC887_DMIC_LR, AZALIA_PIN_CFG_NC(0)), @@ -25,10 +22,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, ALC887_PC_BEEP, 0x4016c629), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT1, 0x01446140), AZALIA_PIN_CFG(0, ALC887_SPDIF_IN, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862806, /* Codec Vendor / Device ID: Intel */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x58560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), @@ -37,6 +33,26 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC887", + .vendor_id = 0x10ec0887, + .subsystem_id = 0x104384a8, + .address = 0, + .verbs = realtek_alc887_verbs, + .verb_count = ARRAY_SIZE(realtek_alc887_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862806, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid) diff --git a/src/mainboard/asus/p8x7x-series/variants/p8z77-m_pro/hda_verb.c b/src/mainboard/asus/p8x7x-series/variants/p8z77-m_pro/hda_verb.c index 696134b00a..67b5e930bc 100644 --- a/src/mainboard/asus/p8x7x-series/variants/p8z77-m_pro/hda_verb.c +++ b/src/mainboard/asus/p8x7x-series/variants/p8z77-m_pro/hda_verb.c @@ -2,10 +2,7 @@ #include -const u32 cim_verb_data[] = { - 0x10ec0892, /* Codec Vendor / Device ID: Realtek */ - 0x10438436, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc892_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438436), AZALIA_PIN_CFG(0, 0x11, 0x99430140), AZALIA_PIN_CFG(0, 0x12, AZALIA_PIN_CFG_NC(0)), @@ -21,10 +18,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, 0x1d, 0x4005e601), AZALIA_PIN_CFG(0, 0x1e, 0x01456130), AZALIA_PIN_CFG(0, 0x1f, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862806, /* Codec Vendor / Device ID: Intel */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x58560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), @@ -33,4 +29,24 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC892", + .vendor_id = 0x10ec0892, + .subsystem_id = 0x10438436, + .address = 0, + .verbs = realtek_alc892_verbs, + .verb_count = ARRAY_SIZE(realtek_alc892_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862806, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p8x7x-series/variants/p8z77-v/hda_verb.c b/src/mainboard/asus/p8x7x-series/variants/p8z77-v/hda_verb.c index efbf7bf979..89368c70b3 100644 --- a/src/mainboard/asus/p8x7x-series/variants/p8z77-v/hda_verb.c +++ b/src/mainboard/asus/p8x7x-series/variants/p8z77-v/hda_verb.c @@ -2,10 +2,7 @@ #include -const u32 cim_verb_data[] = { - 0x10ec0892, /* Codec Vendor / Device ID: Realtek ALC892 */ - 0x104384fb, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc892_verbs[] = { AZALIA_SUBVENDOR(0, 0x104384fb), AZALIA_PIN_CFG(0, 0x11, 0x99430140), AZALIA_PIN_CFG(0, 0x12, AZALIA_PIN_CFG_NC(0)), @@ -21,17 +18,35 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, 0x1d, 0x4005e601), AZALIA_PIN_CFG(0, 0x1e, 0x01456130), AZALIA_PIN_CFG(0, 0x1f, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862806, /* Codec Vendor / Device ID: Intel HDMI */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x58560010), AZALIA_PIN_CFG(3, 0x06, 0x18560020), AZALIA_PIN_CFG(3, 0x07, 0x18560030), - }; const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC892", + .vendor_id = 0x10ec0892, + .subsystem_id = 0x104384fb, + .address = 0, + .verbs = realtek_alc892_verbs, + .verb_count = ARRAY_SIZE(realtek_alc892_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862806, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/asus/p8x7x-series/variants/p8z77-v_le_plus/hda_verb.c b/src/mainboard/asus/p8x7x-series/variants/p8z77-v_le_plus/hda_verb.c index 5bfa977a98..39e12286d8 100644 --- a/src/mainboard/asus/p8x7x-series/variants/p8z77-v_le_plus/hda_verb.c +++ b/src/mainboard/asus/p8x7x-series/variants/p8z77-v_le_plus/hda_verb.c @@ -11,10 +11,7 @@ AZALIA_PIN_DESC(AZALIA_JACK, AZALIA_REAR, dev, AZALIA_STEREO_MONO_1_8, \ AZALIA_PIN_DESC(AZALIA_JACK, AZALIA_FRONT, dev, AZALIA_STEREO_MONO_1_8, \ color, misc, association, sequence) -const u32 cim_verb_data[] = { - 0x10ec0889, /* Realtek ALC889 */ - 0x1043841a, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc889_verbs[] = { AZALIA_SUBVENDOR(0, 0x1043841a), AZALIA_PIN_CFG(0, 0x11, AZALIA_PIN_DESC( AZALIA_INTEGRATED, @@ -76,19 +73,37 @@ const u32 cim_verb_data[] = { AZALIA_NO_JACK_PRESENCE_DETECT, 4, 0)), /* 0x01456140 */ AZALIA_PIN_CFG(0, 0x1f, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862806, /* Intel */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x18560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), AZALIA_PIN_CFG(3, 0x07, 0x18560030), - }; const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC889", + .vendor_id = 0x10ec0889, + .subsystem_id = 0x1043841a, + .address = 0, + .verbs = realtek_alc889_verbs, + .verb_count = ARRAY_SIZE(realtek_alc889_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862806, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES; enum e_spdif2_dest { diff --git a/src/mainboard/asus/p8x7x-series/variants/p8z77-v_lx2/hda_verb.c b/src/mainboard/asus/p8x7x-series/variants/p8z77-v_lx2/hda_verb.c index c6f3b6b4c0..8a94dae4a5 100644 --- a/src/mainboard/asus/p8x7x-series/variants/p8z77-v_lx2/hda_verb.c +++ b/src/mainboard/asus/p8x7x-series/variants/p8z77-v_lx2/hda_verb.c @@ -3,10 +3,7 @@ #include #include -const u32 cim_verb_data[] = { - 0x10ec0887, /* Codec Vendor / Device ID: Realtek ALC887 */ - 0x10438445, /* Subsystem ID */ - 15, /* Number of 4 dword sets */ +static const u32 realtek_alc887_verbs[] = { AZALIA_SUBVENDOR(0, 0x10438445), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT2, 0x99430130), AZALIA_PIN_CFG(0, ALC887_DMIC_LR, AZALIA_PIN_CFG_NC(0)), @@ -22,10 +19,9 @@ const u32 cim_verb_data[] = { AZALIA_PIN_CFG(0, ALC887_PC_BEEP, 0x4004c601), AZALIA_PIN_CFG(0, ALC887_SPDIF_OUT1, AZALIA_PIN_CFG_NC(0)), AZALIA_PIN_CFG(0, ALC887_SPDIF_IN, AZALIA_PIN_CFG_NC(0)), +}; - 0x80862806, /* Codec Vendor / Device ID: Intel HDMI */ - 0x80860101, /* Subsystem ID */ - 4, /* Number of 4 dword sets */ +static const u32 intel_display_audio_verbs[] = { AZALIA_SUBVENDOR(3, 0x80860101), AZALIA_PIN_CFG(3, 0x05, 0x58560010), AZALIA_PIN_CFG(3, 0x06, 0x58560020), @@ -35,4 +31,24 @@ const u32 cim_verb_data[] = { const u32 pc_beep_verbs[0] = {}; +struct azalia_codec mainboard_azalia_codecs[] = { + { + .name = "Realtek ALC887", + .vendor_id = 0x10ec0887, + .subsystem_id = 0x10438445, + .address = 0, + .verbs = realtek_alc887_verbs, + .verb_count = ARRAY_SIZE(realtek_alc887_verbs), + }, + { + .name = "Intel Display Audio (HDMI/DP)", + .vendor_id = 0x80862806, + .subsystem_id = 0x80860101, + .address = 3, + .verbs = intel_display_audio_verbs, + .verb_count = ARRAY_SIZE(intel_display_audio_verbs), + }, + { /* terminator */ } +}; + AZALIA_ARRAY_SIZES;