Persimmon audio codec verb patch.
authorMarc Jones <marcj303@gmail.com>
Wed, 14 Dec 2011 18:24:00 +0000 (11:24 -0700)
committerStefan Reinauer <stefan.reinauer@coreboot.org>
Wed, 21 Dec 2011 00:06:16 +0000 (01:06 +0100)
Verb data is required for the HDA audio codec in the sb800 southbridge. Verb
data is not required for mainboards that use G-Series HDMI. It is also a setting
the may be boards specific. This fixes issues with Windows audio on Persimmon.

Change-Id: I067506871e92078d122cf79872363d8937d47e50
Signed-off-by: Marc Jones <marcj303@gmail.com>
Reviewed-on: http://review.coreboot.org/490
Tested-by: build bot (Jenkins)
Reviewed-by: Kerry Sheh <shekairui@gmail.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
src/mainboard/amd/persimmon/platform_cfg.h
src/southbridge/amd/cimx/sb800/cfg.c

index 66aab8bf4be1df5ce2f7b41269632471c42b8a14..97aa47e2e206ed0ab1347980a344f85fd22c7ddd 100644 (file)
  */
 #define GEC_CONFIG                     0
 
+const static CODECENTRY persimmon_codec_alc269[] =
+{
+       /* NID, PinConfig */
+       {0x12, 0x411111F0},
+       {0x14, 0x99130110},
+       {0x21, 0x0121401F},
+       {0x17, 0x411111F0},
+       {0x18, 0x01A19820},
+       {0x19, 0x411111F0},
+       {0x1A, 0x0181302F},
+       {0x1B, 0x411111F0},
+       {0x1D, 0x40069E05},
+       {0x1E, 0x411111F0},
+       {0x20, 0x0001FFFF},
+       {0xff, 0xffffffff} /* end of table */
+};
+
+const static CODECTBLLIST persimmon_codec_tablelist[] =
+{
+       {0x010ec0269, (CODECENTRY*)&persimmon_codec_alc269[0]},
+       {0x0FFFFFFFFUL, (CODECENTRY*)0x0FFFFFFFFUL}
+};
+
+/**
+ * @def AZALIA_OEM_VERB_TABLE
+ *  Mainboard specific cocec verb table list
+ */
+#define AZALIA_OEM_VERB_TABLE          (&persimmon_codec_tablelist[0])
+
 #endif
index 2998fa2ff1e9f607e2041ac963a2b6f889e16ed0..a9e35bcb8181850d97c66d0ec075ffe7f7ff8fd1 100644 (file)
@@ -91,7 +91,12 @@ void sb800_cimx_config(AMDSBCFG *sb_config)
        sb_config->AzaliaController = AZALIA_CONTROLLER;
        sb_config->AzaliaPinCfg = AZALIA_PIN_CONFIG;
        sb_config->AZALIACONFIG.AzaliaSdinPin = AZALIA_SDIN_PIN;
+       /* Mainboard Specific Azalia Cocec Verb Table */
+#ifdef AZALIA_OEM_VERB_TABLE
+       sb_config->AZOEMTBL.pAzaliaOemCodecTablePtr = (CODECTBLLIST *)AZALIA_OEM_VERB_TABLE;
+#else
        sb_config->AZOEMTBL.pAzaliaOemCodecTablePtr = NULL;
+#endif
 
        /* LPC */
        /* SuperIO hardware monitor register access */