[coreboot-gerrit] Patch set updated for coreboot: azalia: fix up and clean up shrinkage of boilerplate code

Jonathan A. Kollasch (jakllsch@kollasch.net) gerrit at coreboot.org
Sun Jul 12 23:13:01 CEST 2015


Jonathan A. Kollasch (jakllsch at kollasch.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10826

-gerrit

commit 75d04a9e98352b2490d15f09fe9583439affbb00
Author: Jonathan A. Kollasch <jakllsch at kollasch.net>
Date:   Tue Jul 7 12:57:46 2015 -0500

    azalia: fix up and clean up shrinkage of boilerplate code
    
    Should fix regression in HDA verb setup on nvidia mcp55 and intel sch
    southbridges.  The mcp55 code could not find the mainboard's verb table
    because the table was not even being compiled in.  The sch boards appeared
    to have the same issue.
    
    Intel broadwell and fsp_bd82x6x seemed to have not gotten the boilerplate
    shrink, so apply it to those too.
    
    Followup-to: Ib3e09644c0ee71aacb067adaa85653d151b52078
                 (azalia: Shrink boilerplate)
    
    Change-Id: If7aae69f5171db67055ffe220bdff392caaa5d9f
    Signed-off-by: Jonathan A. Kollasch <jakllsch at kollasch.net>
---
 src/mainboard/asus/m2n-e/hda_verb.c             |   2 +
 src/mainboard/gigabyte/m57sli/hda_verb.c        |   7 ++
 src/mainboard/google/auron/hda_verb.c           | 123 ++++++++++++++++++++++++
 src/mainboard/google/auron/hda_verb.h           | 122 -----------------------
 src/mainboard/google/auron/mainboard.c          |  18 ----
 src/mainboard/google/jecht/hda_verb.c           | 113 ++++++++++++++++++++++
 src/mainboard/google/jecht/hda_verb.h           | 112 ---------------------
 src/mainboard/google/jecht/mainboard.c          |  18 ----
 src/mainboard/intel/cougar_canyon2/hda_verb.c   |   3 +
 src/mainboard/iwave/iWRainbowG6/hda_verb.c      |   7 +-
 src/mainboard/msi/ms7260/hda_verb.c             |   7 ++
 src/mainboard/msi/ms9652_fam10/hda_verb.c       |   7 ++
 src/mainboard/nvidia/l1_2pvv/hda_verb.c         |   7 +-
 src/mainboard/supermicro/h8dme/hda_verb.c       |   7 ++
 src/mainboard/supermicro/h8dmr/hda_verb.c       |   7 ++
 src/mainboard/supermicro/h8dmr_fam10/hda_verb.c |   7 ++
 src/soc/intel/broadwell/Makefile.inc            |   2 +
 src/soc/intel/broadwell/hda.c                   |   8 +-
 src/southbridge/intel/fsp_bd82x6x/Makefile.inc  |   2 +
 src/southbridge/intel/fsp_bd82x6x/azalia.c      |   6 +-
 src/southbridge/intel/sch/Makefile.inc          |   1 +
 src/southbridge/intel/sch/audio.c               |   4 +-
 src/southbridge/nvidia/mcp55/Makefile.inc       |   4 +
 src/southbridge/nvidia/mcp55/azalia.c           |  11 ++-
 24 files changed, 315 insertions(+), 290 deletions(-)

diff --git a/src/mainboard/asus/m2n-e/hda_verb.c b/src/mainboard/asus/m2n-e/hda_verb.c
index 58bb983..7e9a53c 100644
--- a/src/mainboard/asus/m2n-e/hda_verb.c
+++ b/src/mainboard/asus/m2n-e/hda_verb.c
@@ -78,4 +78,6 @@ const u32 cim_verb_data[] = {
 	AZALIA_PIN_CFG(0x0, 0x25, 0x01012014),
 };
 
+const u32 pc_beep_verbs[0] = {};
+
 AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/gigabyte/m57sli/hda_verb.c b/src/mainboard/gigabyte/m57sli/hda_verb.c
new file mode 100644
index 0000000..072a306
--- /dev/null
+++ b/src/mainboard/gigabyte/m57sli/hda_verb.c
@@ -0,0 +1,7 @@
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[0] = {};
+
+const u32 pc_beep_verbs[0] = {};
+
+AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/google/auron/hda_verb.c b/src/mainboard/google/auron/hda_verb.c
new file mode 100644
index 0000000..e015a83
--- /dev/null
+++ b/src/mainboard/google/auron/hda_verb.c
@@ -0,0 +1,123 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2014 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.
+ */
+
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[] = {
+	/* coreboot specific header */
+	0x10ec0283,	// Codec Vendor / Device ID: Realtek ALC283
+	0x10ec0283,	// Subsystem ID
+	0x0000000d,	// Number of jacks (NID entries)
+
+	0x0017ff00,	// Function Reset
+	0x0017ff00,	// Double Function Reset
+	0x000F0000,	// Pad - get vendor id
+	0x000F0002,	// Pad - get revision id
+
+	/* Bits 31:28 - Codec Address */
+	/* Bits 27:20 - NID */
+	/* Bits 19:8 - Verb ID */
+	/* Bits 7:0  - Payload */
+
+	/* NID 0x01, HDA Codec Subsystem ID Verb Table: 0x10ec0283 */
+	0x00172083,
+	0x00172102,
+	0x001722ec,
+	0x00172310,
+
+	/* Pin Widget Verb Table */
+
+	/* Pin Complex (NID 0x12) DMIC - Disabled */
+	0x01271cf0, //
+	0x01271d11, //
+	0x01271e11, //
+	0x01271f41, //
+
+	/* Pin Complex (NID 0x14) SPKR-OUT - Internal Speakers */
+	0x01471c10, // group 1, cap 0
+	0x01471d01, // no connector, no jack detect
+	0x01471e17, // speaker out, analog
+	0x01471f90, // fixed function, internal, Location N/A
+
+	/* Pin Complex (NID 0x17) MONO Out - Disabled */
+	0x01771cf0, //
+	0x01771d11, //
+	0x01771e11, //
+	0x01771f41, //
+
+	/* Pin Complex (NID 0x18) Disabled */
+	0x01871cf0, //
+	0x01871d11, //
+	0x01871e11, //
+	0x01871f41, //
+
+	/* Pin Complex (NID 0x19)  MIC2 - 3.5mm Jack */
+	0x01971c20, // group2, cap 0
+	0x01971d10, // black, jack detect
+	0x01971ea1, // Mic in, 3.5mm Jack
+	0x01971f03, // connector, External left panel
+
+	/* Pin Complex (NID 0x1A)  LINE1 - Internal Mic */
+	0x01a71c11, // group 1, cap 1
+	0x01a71d01, // no connector, no jack detect
+	0x01a71ea7, // mic in, analog connection
+	0x01a71f90, // Fixed function, internal, Location N/A
+
+	/* Pin Complex (NID 0x1B)  LINE2 - Disabled */
+	0x01b71cf0, //
+	0x01b71d11, //
+	0x01b71e11, //
+	0x01b71f41, //
+
+	/* Pin Complex (NID 0x1D)  PCBeep */
+	0x01d71c2d, // eapd low on ex-amp, laptop, custom enable
+	0x01d71d81, // mute spkr on hpout
+	0x01d71e15, // pcbeep en able, checksum
+	0x01d71f40, // no physical, Internal, Location N/A
+
+	/* Pin Complex (NID 0x1E)  SPDIF-OUT - Disabled*/
+	0x01e71cf0, //
+	0x01e71d11, //
+	0x01e71e11, //
+	0x01e71f41, //
+
+	/* Pin Complex (NID 0x21) HP-OUT - 3.5mm Jack*/
+	0x02171c21, // group2, cap 1
+	0x02171d10, // black, jack detect
+	0x02171e21, // HPOut, 3.5mm Jack
+	0x02171f03, // connector, left panel
+
+	/* Undocumented settings from Realtek (needed for beep_gen) */
+	/* Widget node 0x20 */
+	0x02050010,
+	0x02040c20,
+	0x0205001b,
+	0x0204081b,
+};
+
+const u32 pc_beep_verbs[] = {
+	0x00170500,	/* power up everything (codec, dac, adc, mixers)  */
+	0x01470740,	/* enable speaker out */
+	0x01470c02,	/* set speaker EAPD pin */
+	0x0143b01f,	/* unmute speaker */
+	0x00c37100,	/* unmute mixer nid 0xc input 1 */
+	0x00b37410,	/* unmute mixer nid 0xb beep input and set volume */
+};
+
+AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/google/auron/hda_verb.h b/src/mainboard/google/auron/hda_verb.h
deleted file mode 100644
index 275ee3a..0000000
--- a/src/mainboard/google/auron/hda_verb.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2014 Google Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc.
- */
-
-static const u32 mainboard_cim_verb_data[] = {
-	/* coreboot specific header */
-	0x10ec0283,	// Codec Vendor / Device ID: Realtek ALC283
-	0x10ec0283,	// Subsystem ID
-	0x0000000d,	// Number of jacks (NID entries)
-
-	0x0017ff00,	// Function Reset
-	0x0017ff00,	// Double Function Reset
-	0x000F0000,	// Pad - get vendor id
-	0x000F0002,	// Pad - get revision id
-
-	/* Bits 31:28 - Codec Address */
-	/* Bits 27:20 - NID */
-	/* Bits 19:8 - Verb ID */
-	/* Bits 7:0  - Payload */
-
-	/* NID 0x01, HDA Codec Subsystem ID Verb Table: 0x10ec0283 */
-	0x00172083,
-	0x00172102,
-	0x001722ec,
-	0x00172310,
-
-	/* Pin Widget Verb Table */
-
-	/* Pin Complex (NID 0x12) DMIC - Disabled */
-	0x01271cf0, //
-	0x01271d11, //
-	0x01271e11, //
-	0x01271f41, //
-
-	/* Pin Complex (NID 0x14) SPKR-OUT - Internal Speakers */
-	0x01471c10, // group 1, cap 0
-	0x01471d01, // no connector, no jack detect
-	0x01471e17, // speaker out, analog
-	0x01471f90, // fixed function, internal, Location N/A
-
-	/* Pin Complex (NID 0x17) MONO Out - Disabled */
-	0x01771cf0, //
-	0x01771d11, //
-	0x01771e11, //
-	0x01771f41, //
-
-	/* Pin Complex (NID 0x18) Disabled */
-	0x01871cf0, //
-	0x01871d11, //
-	0x01871e11, //
-	0x01871f41, //
-
-	/* Pin Complex (NID 0x19)  MIC2 - 3.5mm Jack */
-	0x01971c20, // group2, cap 0
-	0x01971d10, // black, jack detect
-	0x01971ea1, // Mic in, 3.5mm Jack
-	0x01971f03, // connector, External left panel
-
-	/* Pin Complex (NID 0x1A)  LINE1 - Internal Mic */
-	0x01a71c11, // group 1, cap 1
-	0x01a71d01, // no connector, no jack detect
-	0x01a71ea7, // mic in, analog connection
-	0x01a71f90, // Fixed function, internal, Location N/A
-
-	/* Pin Complex (NID 0x1B)  LINE2 - Disabled */
-	0x01b71cf0, //
-	0x01b71d11, //
-	0x01b71e11, //
-	0x01b71f41, //
-
-	/* Pin Complex (NID 0x1D)  PCBeep */
-	0x01d71c2d, // eapd low on ex-amp, laptop, custom enable
-	0x01d71d81, // mute spkr on hpout
-	0x01d71e15, // pcbeep en able, checksum
-	0x01d71f40, // no physical, Internal, Location N/A
-
-	/* Pin Complex (NID 0x1E)  SPDIF-OUT - Disabled*/
-	0x01e71cf0, //
-	0x01e71d11, //
-	0x01e71e11, //
-	0x01e71f41, //
-
-	/* Pin Complex (NID 0x21) HP-OUT - 3.5mm Jack*/
-	0x02171c21, // group2, cap 1
-	0x02171d10, // black, jack detect
-	0x02171e21, // HPOut, 3.5mm Jack
-	0x02171f03, // connector, left panel
-
-	/* Undocumented settings from Realtek (needed for beep_gen) */
-	/* Widget node 0x20 */
-	0x02050010,
-	0x02040c20,
-	0x0205001b,
-	0x0204081b,
-};
-
-static const u32 mainboard_pc_beep_verbs[] = {
-	0x00170500,	/* power up everything (codec, dac, adc, mixers)  */
-	0x01470740,	/* enable speaker out */
-	0x01470c02,	/* set speaker EAPD pin */
-	0x0143b01f,	/* unmute speaker */
-	0x00c37100,	/* unmute mixer nid 0xc input 1 */
-	0x00b37410,	/* unmute mixer nid 0xb beep input and set volume */
-};
-
-static const u32 mainboard_pc_beep_verbs_size =
-	sizeof(mainboard_pc_beep_verbs) / sizeof(mainboard_pc_beep_verbs[0]);
diff --git a/src/mainboard/google/auron/mainboard.c b/src/mainboard/google/auron/mainboard.c
index cc9907e..13eec7e 100644
--- a/src/mainboard/google/auron/mainboard.c
+++ b/src/mainboard/google/auron/mainboard.c
@@ -32,27 +32,10 @@
 #include <arch/io.h>
 #include <arch/interrupt.h>
 #include <boot/coreboot_tables.h>
-#include "hda_verb.h"
 #include "ec.h"
 #include "onboard.h"
 
 
-/* Audio Setup */
-
-extern const u32 *cim_verb_data;
-extern u32 cim_verb_data_size;
-extern const u32 *pc_beep_verbs;
-extern u32 pc_beep_verbs_size;
-
-static void verb_setup(void)
-{
-	cim_verb_data = mainboard_cim_verb_data;
-	cim_verb_data_size = sizeof(mainboard_cim_verb_data);
-	pc_beep_verbs = mainboard_pc_beep_verbs;
-	pc_beep_verbs_size = mainboard_pc_beep_verbs_size;
-
-}
-
 static void mainboard_init(device_t dev)
 {
 	mainboard_ec_init();
@@ -110,7 +93,6 @@ static void mainboard_enable(device_t dev)
 	dev->ops->init = mainboard_init;
 	dev->ops->get_smbios_data = mainboard_smbios_data;
 	install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_EDP, GMA_INT15_PANEL_FIT_CENTERING, GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
-	verb_setup();
 }
 
 struct chip_operations mainboard_ops = {
diff --git a/src/mainboard/google/jecht/hda_verb.c b/src/mainboard/google/jecht/hda_verb.c
new file mode 100644
index 0000000..f4b5982
--- /dev/null
+++ b/src/mainboard/google/jecht/hda_verb.c
@@ -0,0 +1,113 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.
+ */
+
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[] = {
+	/* coreboot specific header */
+	0x10ec0283,	// Codec Vendor / Device ID: Realtek ALC283
+	0x10ec0283,	// Subsystem ID
+	0x0000000c,	// Number of jacks (NID entries)
+
+	/* NID 0x01, HDA Codec Subsystem ID Verb Table: 0x10ec0283 */
+	0x00172083,
+	0x00172102,
+	0x001722ec,
+	0x00172310,
+
+	/* Pin Widget Verb Table */
+
+	/* Pin Complex (NID 0x12) DMIC */
+	0x01271cf0,
+	0x01271d11,
+	0x01271e11,
+	0x01271f41,
+
+	/* Pin Complex (NID 0x14) SPKR-OUT PORTD */
+	0x01471cf0,
+	0x01471d11,
+	0x01471e11,
+	0x01471f40,
+
+	/* Pin Complex (NID 0x17)  */
+	0x01771cf0,
+	0x01771d11,
+	0x01771e11,
+	0x01771f41,
+
+	/* Pin Complex (NID 0x18)  MIC1 PORTB */
+	0x01971c11, // group 1, cap 1
+	0x01971d10, // black, jack detect
+	0x01971ea7, // mic in, analog
+	0x01971f03, // connector, left panel
+
+	/* Pin Complex (NID 0x19)  MIC2 PORTF */
+	0x01871cf0,
+	0x01871d11,
+	0x01871e11,
+	0x01871f41,
+
+	/* Pin Complex (NID 0x1A)  LINE1 PORTC */
+	0x01a71cf0,
+	0x01a71d11,
+	0x01a71e11,
+	0x01a71f41,
+
+	/* Pin Complex (NID 0x1B)  LINE2 PORTE */
+	0x01a71cf0,
+	0x01a71d11,
+	0x01a71e11,
+	0x01a71f41,
+
+	/* Pin Complex (NID 0x1d)  PCBeep */
+	0x01d71c2d, // eapd low on ex-amp, laptop, custom enable
+	0x01d71d81, // mute spkr on hpout
+	0x01d71e15, // pcbeep en able, checksum
+	0x01d71f40, // no physical, internal
+
+	/* Pin Complex (NID 0x1E)  SPDIF-OUT */
+	0x01e71cf0,
+	0x01e71d11,
+	0x01e71e11,
+	0x01e71f41,
+
+	/* Pin Complex (NID 0x21) HPOUT PORT-I */
+	0x02171c1f, // group1,
+	0x02171d10, // black, jack detect
+	0x02171e21, // HPOut, 1/8 stereo
+	0x02171f03, // connector, left panel
+
+	/* Undocumented settings from Realtek (needed for beep_gen) */
+	/* Widget node 0x20 */
+	0x02050010,
+	0x02040c20,
+	0x0205001b,
+	0x0204081b,
+};
+
+const u32 pc_beep_verbs[] = {
+	0x00170500,	/* power up everything (codec, dac, adc, mixers)  */
+	0x01470740,	/* enable speaker out */
+	0x01470c02,	/* set speaker EAPD pin */
+	0x0143b01f,	/* unmute speaker */
+	0x00c37100,	/* unmute mixer nid 0xc input 1 */
+	0x00b37410,	/* unmute mixer nid 0xb beep input and set volume */
+};
+
+AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/google/jecht/hda_verb.h b/src/mainboard/google/jecht/hda_verb.h
deleted file mode 100644
index bc7cf1d..0000000
--- a/src/mainboard/google/jecht/hda_verb.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2013 Google Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc.
- */
-
-static const u32 mainboard_cim_verb_data[] = {
-	/* coreboot specific header */
-	0x10ec0283,	// Codec Vendor / Device ID: Realtek ALC283
-	0x10ec0283,	// Subsystem ID
-	0x0000000c,	// Number of jacks (NID entries)
-
-	/* NID 0x01, HDA Codec Subsystem ID Verb Table: 0x10ec0283 */
-	0x00172083,
-	0x00172102,
-	0x001722ec,
-	0x00172310,
-
-	/* Pin Widget Verb Table */
-
-	/* Pin Complex (NID 0x12) DMIC */
-	0x01271cf0,
-	0x01271d11,
-	0x01271e11,
-	0x01271f41,
-
-	/* Pin Complex (NID 0x14) SPKR-OUT PORTD */
-	0x01471cf0,
-	0x01471d11,
-	0x01471e11,
-	0x01471f40,
-
-	/* Pin Complex (NID 0x17)  */
-	0x01771cf0,
-	0x01771d11,
-	0x01771e11,
-	0x01771f41,
-
-	/* Pin Complex (NID 0x18)  MIC1 PORTB */
-	0x01971c11, // group 1, cap 1
-	0x01971d10, // black, jack detect
-	0x01971ea7, // mic in, analog
-	0x01971f03, // connector, left panel
-
-	/* Pin Complex (NID 0x19)  MIC2 PORTF */
-	0x01871cf0,
-	0x01871d11,
-	0x01871e11,
-	0x01871f41,
-
-	/* Pin Complex (NID 0x1A)  LINE1 PORTC */
-	0x01a71cf0,
-	0x01a71d11,
-	0x01a71e11,
-	0x01a71f41,
-
-	/* Pin Complex (NID 0x1B)  LINE2 PORTE */
-	0x01a71cf0,
-	0x01a71d11,
-	0x01a71e11,
-	0x01a71f41,
-
-	/* Pin Complex (NID 0x1d)  PCBeep */
-	0x01d71c2d, // eapd low on ex-amp, laptop, custom enable
-	0x01d71d81, // mute spkr on hpout
-	0x01d71e15, // pcbeep en able, checksum
-	0x01d71f40, // no physical, internal
-
-	/* Pin Complex (NID 0x1E)  SPDIF-OUT */
-	0x01e71cf0,
-	0x01e71d11,
-	0x01e71e11,
-	0x01e71f41,
-
-	/* Pin Complex (NID 0x21) HPOUT PORT-I */
-	0x02171c1f, // group1,
-	0x02171d10, // black, jack detect
-	0x02171e21, // HPOut, 1/8 stereo
-	0x02171f03, // connector, left panel
-
-	/* Undocumented settings from Realtek (needed for beep_gen) */
-	/* Widget node 0x20 */
-	0x02050010,
-	0x02040c20,
-	0x0205001b,
-	0x0204081b,
-};
-
-static const u32 mainboard_pc_beep_verbs[] = {
-	0x00170500,	/* power up everything (codec, dac, adc, mixers)  */
-	0x01470740,	/* enable speaker out */
-	0x01470c02,	/* set speaker EAPD pin */
-	0x0143b01f,	/* unmute speaker */
-	0x00c37100,	/* unmute mixer nid 0xc input 1 */
-	0x00b37410,	/* unmute mixer nid 0xb beep input and set volume */
-};
-
-static const u32 mainboard_pc_beep_verbs_size =
-	sizeof(mainboard_pc_beep_verbs) / sizeof(mainboard_pc_beep_verbs[0]);
diff --git a/src/mainboard/google/jecht/mainboard.c b/src/mainboard/google/jecht/mainboard.c
index 8b3363c..f0b2e37 100644
--- a/src/mainboard/google/jecht/mainboard.c
+++ b/src/mainboard/google/jecht/mainboard.c
@@ -34,7 +34,6 @@
 #include <arch/io.h>
 #include <arch/interrupt.h>
 #include <boot/coreboot_tables.h>
-#include "hda_verb.h"
 #include "onboard.h"
 
 void mainboard_suspend_resume(void)
@@ -129,22 +128,6 @@ static int int15_handler(void)
 }
 #endif
 
-/* Audio Setup */
-
-extern const u32 *cim_verb_data;
-extern u32 cim_verb_data_size;
-extern const u32 *pc_beep_verbs;
-extern u32 pc_beep_verbs_size;
-
-static void verb_setup(void)
-{
-	cim_verb_data = mainboard_cim_verb_data;
-	cim_verb_data_size = sizeof(mainboard_cim_verb_data);
-	pc_beep_verbs = mainboard_pc_beep_verbs;
-	pc_beep_verbs_size = mainboard_pc_beep_verbs_size;
-
-}
-
 static void mainboard_init(device_t dev)
 {
 	lan_init();
@@ -160,7 +143,6 @@ static void mainboard_enable(device_t dev)
 	/* Install custom int15 handler for VGA OPROM */
 	mainboard_interrupt_handlers(0x15, &int15_handler);
 #endif
-	verb_setup();
 }
 
 struct chip_operations mainboard_ops = {
diff --git a/src/mainboard/intel/cougar_canyon2/hda_verb.c b/src/mainboard/intel/cougar_canyon2/hda_verb.c
index 51b6356..a110246 100644
--- a/src/mainboard/intel/cougar_canyon2/hda_verb.c
+++ b/src/mainboard/intel/cougar_canyon2/hda_verb.c
@@ -37,4 +37,7 @@ const u32 cim_verb_data[] = {
 	/* Pin Complex (NID 0x07) Digital Out at Int HDMI */
 	AZALIA_PIN_CFG(0x3, 0x07, 0x18560030)
 };
+
+const u32 pc_beep_verbs[0] = {};
+
 AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/iwave/iWRainbowG6/hda_verb.c b/src/mainboard/iwave/iWRainbowG6/hda_verb.c
index effc22e..21b230b 100644
--- a/src/mainboard/iwave/iWRainbowG6/hda_verb.c
+++ b/src/mainboard/iwave/iWRainbowG6/hda_verb.c
@@ -17,7 +17,9 @@
  * Foundation, Inc.
  */
 
-static u32 mainboard_cim_verb_data[] = {
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[] = {
 	/* coreboot specific header */
 	0x111d76d5,		// Codec Vendor / Device ID: IDT 92HD81
 	0x00000000,		// Subsystem ID
@@ -89,4 +91,7 @@ static u32 mainboard_cim_verb_data[] = {
 	/* BTL Gain */
 	0x017F417, /* Gain = 16.79dB */
 };
+
+const u32 pc_beep_verbs[0] = {};
+
 AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/msi/ms7260/hda_verb.c b/src/mainboard/msi/ms7260/hda_verb.c
new file mode 100644
index 0000000..072a306
--- /dev/null
+++ b/src/mainboard/msi/ms7260/hda_verb.c
@@ -0,0 +1,7 @@
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[0] = {};
+
+const u32 pc_beep_verbs[0] = {};
+
+AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/msi/ms9652_fam10/hda_verb.c b/src/mainboard/msi/ms9652_fam10/hda_verb.c
new file mode 100644
index 0000000..072a306
--- /dev/null
+++ b/src/mainboard/msi/ms9652_fam10/hda_verb.c
@@ -0,0 +1,7 @@
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[0] = {};
+
+const u32 pc_beep_verbs[0] = {};
+
+AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/nvidia/l1_2pvv/hda_verb.c b/src/mainboard/nvidia/l1_2pvv/hda_verb.c
index bb20c2b..68076f9 100644
--- a/src/mainboard/nvidia/l1_2pvv/hda_verb.c
+++ b/src/mainboard/nvidia/l1_2pvv/hda_verb.c
@@ -19,7 +19,9 @@
  * Foundation, Inc.
  */
 
-static u32 mainboard_cim_verb_data[] = {
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[] = {
 	/* coreboot specific header */
 	0x10ec0880,	// Codec Vendor / Device ID: Realtek ALC880
 	0x00000000,	// Subsystem ID
@@ -64,4 +66,7 @@ static u32 mainboard_cim_verb_data[] = {
 	/* NID 0x1f, S/PDIF-IN */
 	AZALIA_PIN_CFG(0x0, 0x1f, 0x01c59150),
 };
+
+const u32 pc_beep_verbs[0] = {};
+
 AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/supermicro/h8dme/hda_verb.c b/src/mainboard/supermicro/h8dme/hda_verb.c
new file mode 100644
index 0000000..072a306
--- /dev/null
+++ b/src/mainboard/supermicro/h8dme/hda_verb.c
@@ -0,0 +1,7 @@
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[0] = {};
+
+const u32 pc_beep_verbs[0] = {};
+
+AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/supermicro/h8dmr/hda_verb.c b/src/mainboard/supermicro/h8dmr/hda_verb.c
new file mode 100644
index 0000000..072a306
--- /dev/null
+++ b/src/mainboard/supermicro/h8dmr/hda_verb.c
@@ -0,0 +1,7 @@
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[0] = {};
+
+const u32 pc_beep_verbs[0] = {};
+
+AZALIA_ARRAY_SIZES;
diff --git a/src/mainboard/supermicro/h8dmr_fam10/hda_verb.c b/src/mainboard/supermicro/h8dmr_fam10/hda_verb.c
new file mode 100644
index 0000000..072a306
--- /dev/null
+++ b/src/mainboard/supermicro/h8dmr_fam10/hda_verb.c
@@ -0,0 +1,7 @@
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[0] = {};
+
+const u32 pc_beep_verbs[0] = {};
+
+AZALIA_ARRAY_SIZES;
diff --git a/src/soc/intel/broadwell/Makefile.inc b/src/soc/intel/broadwell/Makefile.inc
index d7845e6..4b14ff8 100644
--- a/src/soc/intel/broadwell/Makefile.inc
+++ b/src/soc/intel/broadwell/Makefile.inc
@@ -66,6 +66,8 @@ ramstage-y += ehci.c
 ramstage-y += xhci.c
 smm-y      += xhci.c
 
+ramstage-srcs += src/mainboard/$(MAINBOARDDIR)/hda_verb.c
+
 ifeq ($(CONFIG_USBDEBUG),y)
 ramstage-y += usbdebug.c
 romstage-y += usbdebug.c
diff --git a/src/soc/intel/broadwell/hda.c b/src/soc/intel/broadwell/hda.c
index 28b3df7..43321b7 100644
--- a/src/soc/intel/broadwell/hda.c
+++ b/src/soc/intel/broadwell/hda.c
@@ -21,6 +21,7 @@
 
 #include <console/console.h>
 #include <device/device.h>
+#include <device/azalia_device.h>
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
@@ -31,11 +32,6 @@
 #include <soc/ramstage.h>
 #include <soc/rcba.h>
 
-const u32 * cim_verb_data = NULL;
-u32 cim_verb_data_size = 0;
-const u32 * pc_beep_verbs = NULL;
-u32 pc_beep_verbs_size = 0;
-
 static void codecs_init(u8 *base, u32 codec_mask)
 {
 	int i;
@@ -48,7 +44,7 @@ static void codecs_init(u8 *base, u32 codec_mask)
 				       cim_verb_data);
 	}
 
-	if (pc_beep_verbs_size && pc_beep_verbs)
+	if (pc_beep_verbs_size)
 		hda_codec_write(base, pc_beep_verbs_size, pc_beep_verbs);
 }
 
diff --git a/src/southbridge/intel/fsp_bd82x6x/Makefile.inc b/src/southbridge/intel/fsp_bd82x6x/Makefile.inc
index d96e641..228b6eb 100644
--- a/src/southbridge/intel/fsp_bd82x6x/Makefile.inc
+++ b/src/southbridge/intel/fsp_bd82x6x/Makefile.inc
@@ -39,6 +39,8 @@ smm-$(CONFIG_SPI_FLASH_SMM) += ../common/spi.c
 ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c
 smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c me.c me_8.x.c finalize.c
 
+ramstage-srcs += src/mainboard/$(MAINBOARDDIR)/hda_verb.c
+
 romstage-y += early_usb.c early_smbus.c early_me.c me_status.c gpio.c early_init.c
 romstage-$(CONFIG_USBDEBUG) += usb_debug.c
 ramstage-$(CONFIG_USBDEBUG) += usb_debug.c
diff --git a/src/southbridge/intel/fsp_bd82x6x/azalia.c b/src/southbridge/intel/fsp_bd82x6x/azalia.c
index e6c9b27..b6f728c 100644
--- a/src/southbridge/intel/fsp_bd82x6x/azalia.c
+++ b/src/southbridge/intel/fsp_bd82x6x/azalia.c
@@ -21,6 +21,7 @@
 
 #include <console/console.h>
 #include <device/device.h>
+#include <device/azalia_device.h>
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
@@ -91,11 +92,6 @@ no_codec:
 	return 0;
 }
 
-const u32 * cim_verb_data = NULL;
-u32 cim_verb_data_size = 0;
-const u32 * pc_beep_verbs = NULL;
-u32 pc_beep_verbs_size = 0;
-
 static u32 find_verb(struct device *dev, u32 viddid, const u32 ** verb)
 {
 	int idx=0;
diff --git a/src/southbridge/intel/sch/Makefile.inc b/src/southbridge/intel/sch/Makefile.inc
index db876a1..0b21801 100644
--- a/src/southbridge/intel/sch/Makefile.inc
+++ b/src/southbridge/intel/sch/Makefile.inc
@@ -36,6 +36,7 @@ ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c
 ramstage-$(CONFIG_HAVE_SMI_HANDLER) += ../../../cpu/x86/smm/smmrelocate.S
 smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c
 
+ramstage-srcs += src/mainboard/$(MAINBOARDDIR)/hda_verb.c
 
 # We don't ship that, but booting without it is bound to fail
 cbfs-files-$(CONFIG_HAVE_CMC) += cmc.bin
diff --git a/src/southbridge/intel/sch/audio.c b/src/southbridge/intel/sch/audio.c
index 770bb75..bba2f7b 100644
--- a/src/southbridge/intel/sch/audio.c
+++ b/src/southbridge/intel/sch/audio.c
@@ -20,6 +20,7 @@
 
 #include <console/console.h>
 #include <device/device.h>
+#include <device/azalia_device.h>
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
@@ -112,9 +113,6 @@ no_codec:
 	return 0;
 }
 
-const u32 *cim_verb_data = NULL;
-u32 cim_verb_data_size = 0;
-
 static u32 find_verb(struct device *dev, u32 viddid, const u32 ** verb)
 {
 	printk(BIOS_DEBUG, "sch_audio: dev=%s\n", dev_path(dev));
diff --git a/src/southbridge/nvidia/mcp55/Makefile.inc b/src/southbridge/nvidia/mcp55/Makefile.inc
index 3e24f1c..fb9c3fb 100644
--- a/src/southbridge/nvidia/mcp55/Makefile.inc
+++ b/src/southbridge/nvidia/mcp55/Makefile.inc
@@ -20,6 +20,10 @@ ramstage-y += reset.c
 romstage-$(CONFIG_USBDEBUG_IN_ROMSTAGE) += enable_usbdebug.c
 ramstage-$(CONFIG_USBDEBUG) += enable_usbdebug.c
 
+ifeq ($(CONFIG_MCP55_USE_AZA),y)
+ramstage-srcs += src/mainboard/$(MAINBOARDDIR)/hda_verb.c
+endif
+
 chipset_bootblock_inc += $(src)/southbridge/nvidia/mcp55/romstrap.inc
 bootblock-y += romstrap.ld
 
diff --git a/src/southbridge/nvidia/mcp55/azalia.c b/src/southbridge/nvidia/mcp55/azalia.c
index 8285749..bb4376f 100644
--- a/src/southbridge/nvidia/mcp55/azalia.c
+++ b/src/southbridge/nvidia/mcp55/azalia.c
@@ -20,6 +20,7 @@
 
 #include <console/console.h>
 #include <device/device.h>
+#include <device/azalia_device.h>
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
@@ -27,6 +28,7 @@
 #include <delay.h>
 #include "mcp55.h"
 
+#if IS_ENABLED(CONFIG_MCP55_USE_AZA)
 #define HDA_ICII_REG 0x68
 #define HDA_ICII_BUSY (1 << 0)
 #define HDA_ICII_VALID (1 << 1)
@@ -86,10 +88,8 @@ no_codec:
 	return 0;
 }
 
-u32 *cim_verb_data = NULL;
-u32 cim_verb_data_size = 0;
 
-static u32 find_verb(struct device *dev, u32 viddid, u32 **verb)
+static u32 find_verb(struct device *dev, u32 viddid, const u32 **verb)
 {
 	int idx = 0;
 
@@ -155,7 +155,7 @@ static int wait_for_valid(u8 *base)
 static void codec_init(struct device *dev, u8 *base, int addr)
 {
 	u32 reg32, verb_size;
-	u32 *verb;
+	const u32 *verb;
 	int i;
 
 	printk(BIOS_DEBUG, "Azalia: Initializing codec #%d\n", addr);
@@ -203,9 +203,11 @@ static void codecs_init(struct device *dev, u8 *base, u32 codec_mask)
 			codec_init(dev, base, i);
 	}
 }
+#endif
 
 static void azalia_init(struct device *dev)
 {
+#if IS_ENABLED(CONFIG_MCP55_USE_AZA)
 	u8 *base;
 	u32 codec_mask, reg32;
 	struct resource *res;
@@ -253,6 +255,7 @@ static void azalia_init(struct device *dev)
 		printk(BIOS_DEBUG, "Azalia: codec_mask = %02x\n", codec_mask);
 		codecs_init(dev, base, codec_mask);
 	}
+#endif
 }
 
 static void azalia_set_subsystem(device_t dev, unsigned vendor, unsigned device)



More information about the coreboot-gerrit mailing list