summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/device/azalia_device.c6
-rw-r--r--src/include/device/azalia_device.h3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/device/azalia_device.c b/src/device/azalia_device.c
index 5a3a5ded04..1a57be1181 100644
--- a/src/device/azalia_device.c
+++ b/src/device/azalia_device.c
@@ -210,6 +210,10 @@ int azalia_program_verb_table(u8 *base, const u32 *verbs, u32 verb_size)
return 0;
}
+__weak void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid)
+{
+}
+
static void codec_init(struct device *dev, u8 *base, int addr)
{
u32 reg32;
@@ -246,6 +250,8 @@ static void codec_init(struct device *dev, u8 *base, int addr)
/* 3 */
azalia_program_verb_table(base, verb, verb_size);
printk(BIOS_DEBUG, "azalia_audio: verb loaded.\n");
+
+ mainboard_azalia_program_runtime_verbs(base, reg32);
}
static void codecs_init(struct device *dev, u8 *base, u32 codec_mask)
diff --git a/src/include/device/azalia_device.h b/src/include/device/azalia_device.h
index ce8c0d193e..9010507aee 100644
--- a/src/include/device/azalia_device.h
+++ b/src/include/device/azalia_device.h
@@ -26,6 +26,9 @@ int azalia_program_verb_table(u8 *base, const u32 *verbs, u32 verb_size);
void azalia_audio_init(struct device *dev);
extern struct device_operations default_azalia_audio_ops;
+/* Optional hook to program codec settings that are only known at runtime */
+void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid);
+
extern const u32 cim_verb_data[];
extern const u32 cim_verb_data_size;
extern const u32 pc_beep_verbs[];