From 21d6fd9d7819ffbf5416e612d7db87a0afd4d29a Mon Sep 17 00:00:00 2001 From: Bruce Griffith Date: Tue, 25 Jun 2013 14:01:21 -0600 Subject: [PATCH] AMD SB700 boards: Set Azalia configuration flags The existing code for setting Azalia configuration assumes that the configuration bits are contiguous within a single byte and can be set using a byte copy addressed into the lowest 2-bit subfield. The fix in Family 14 defines a union that can be addressed as a byte to overlay the bit fields. Since the offset of the four subfields is not necessarily fixed, change the code to initialize each of the four subfields individually. Change-Id: I1dff20bb8bd3e1bcd8b4e6b0537e20779d2a3521 Signed-off-by: Bruce Griffith Reviewed-on: http://review.coreboot.org/3544 Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) Reviewed-by: Zheng Bao Reviewed-by: Stefan Reinauer --- src/mainboard/amd/dinar/sb700_cfg.c | 5 ++++- src/mainboard/amd/dinar/sb700_cfg.h | 6 +++++- src/mainboard/supermicro/h8qgi/sb700_cfg.c | 5 ++++- src/mainboard/supermicro/h8qgi/sb700_cfg.h | 6 +++++- src/mainboard/supermicro/h8scm/sb700_cfg.c | 5 ++++- src/mainboard/supermicro/h8scm/sb700_cfg.h | 6 +++++- 6 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/mainboard/amd/dinar/sb700_cfg.c b/src/mainboard/amd/dinar/sb700_cfg.c index 94e4b40fda..c9a094943c 100644 --- a/src/mainboard/amd/dinar/sb700_cfg.c +++ b/src/mainboard/amd/dinar/sb700_cfg.c @@ -126,7 +126,10 @@ void sb700_cimx_config(AMDSBCFG *sb_config) /* Azalia HDA */ sb_config->AzaliaController = AZALIA_CONTROLLER; sb_config->AzaliaPinCfg = AZALIA_PIN_CONFIG; - sb_config->AzaliaSdin0 = AZALIA_SDIN_PIN; + sb_config->AzaliaSdin0 = AZALIA_SDIN_PIN_0; + sb_config->AzaliaSdin1 = AZALIA_SDIN_PIN_1; + sb_config->AzaliaSdin2 = AZALIA_SDIN_PIN_2; + sb_config->AzaliaSdin3 = AZALIA_SDIN_PIN_3; sb_config->pAzaliaOemCodecTablePtr = NULL; #ifndef __PRE_RAM__ diff --git a/src/mainboard/amd/dinar/sb700_cfg.h b/src/mainboard/amd/dinar/sb700_cfg.h index 371c7ce774..216c264535 100644 --- a/src/mainboard/amd/dinar/sb700_cfg.h +++ b/src/mainboard/amd/dinar/sb700_cfg.h @@ -192,7 +192,11 @@ */ #ifndef AZALIA_SDIN_PIN //#define AZALIA_SDIN_PIN 0xAA -#define AZALIA_SDIN_PIN 0x2A +#define AZALIA_SDIN_PIN +#define AZALIA_SDIN_PIN_0 0x2 +#define AZALIA_SDIN_PIN_1 0x2 +#define AZALIA_SDIN_PIN_2 0x2 +#define AZALIA_SDIN_PIN_3 0x0 #endif /** diff --git a/src/mainboard/supermicro/h8qgi/sb700_cfg.c b/src/mainboard/supermicro/h8qgi/sb700_cfg.c index 54c139ab13..ff2334f4e5 100644 --- a/src/mainboard/supermicro/h8qgi/sb700_cfg.c +++ b/src/mainboard/supermicro/h8qgi/sb700_cfg.c @@ -126,7 +126,10 @@ void sb700_cimx_config(AMDSBCFG *sb_config) /* Azalia HDA */ sb_config->AzaliaController = AZALIA_CONTROLLER; sb_config->AzaliaPinCfg = AZALIA_PIN_CONFIG; - sb_config->AzaliaSdin0 = AZALIA_SDIN_PIN; + sb_config->AzaliaSdin0 = AZALIA_SDIN_PIN_0; + sb_config->AzaliaSdin1 = AZALIA_SDIN_PIN_1; + sb_config->AzaliaSdin2 = AZALIA_SDIN_PIN_2; + sb_config->AzaliaSdin3 = AZALIA_SDIN_PIN_3; sb_config->pAzaliaOemCodecTablePtr = NULL; #ifndef __PRE_RAM__ diff --git a/src/mainboard/supermicro/h8qgi/sb700_cfg.h b/src/mainboard/supermicro/h8qgi/sb700_cfg.h index a3e5a389c6..1df3fc5ea9 100644 --- a/src/mainboard/supermicro/h8qgi/sb700_cfg.h +++ b/src/mainboard/supermicro/h8qgi/sb700_cfg.h @@ -192,7 +192,11 @@ */ #ifndef AZALIA_SDIN_PIN //#define AZALIA_SDIN_PIN 0xAA -#define AZALIA_SDIN_PIN 0x2A +#define AZALIA_SDIN_PIN +#define AZALIA_SDIN_PIN_0 0x2 +#define AZALIA_SDIN_PIN_1 0x2 +#define AZALIA_SDIN_PIN_2 0x2 +#define AZALIA_SDIN_PIN_3 0x0 #endif /** diff --git a/src/mainboard/supermicro/h8scm/sb700_cfg.c b/src/mainboard/supermicro/h8scm/sb700_cfg.c index 12169e6be4..c03a501379 100644 --- a/src/mainboard/supermicro/h8scm/sb700_cfg.c +++ b/src/mainboard/supermicro/h8scm/sb700_cfg.c @@ -126,7 +126,10 @@ void sb700_cimx_config(AMDSBCFG *sb_config) /* Azalia HDA */ sb_config->AzaliaController = AZALIA_CONTROLLER; sb_config->AzaliaPinCfg = AZALIA_PIN_CONFIG; - sb_config->AzaliaSdin0 = AZALIA_SDIN_PIN; + sb_config->AzaliaSdin0 = AZALIA_SDIN_PIN_0; + sb_config->AzaliaSdin1 = AZALIA_SDIN_PIN_1; + sb_config->AzaliaSdin2 = AZALIA_SDIN_PIN_2; + sb_config->AzaliaSdin3 = AZALIA_SDIN_PIN_3; sb_config->pAzaliaOemCodecTablePtr = NULL; #ifndef __PRE_RAM__ diff --git a/src/mainboard/supermicro/h8scm/sb700_cfg.h b/src/mainboard/supermicro/h8scm/sb700_cfg.h index eca355f969..40c89fa59f 100644 --- a/src/mainboard/supermicro/h8scm/sb700_cfg.h +++ b/src/mainboard/supermicro/h8scm/sb700_cfg.h @@ -192,7 +192,11 @@ */ #ifndef AZALIA_SDIN_PIN //#define AZALIA_SDIN_PIN 0xAA -#define AZALIA_SDIN_PIN 0x2A +#define AZALIA_SDIN_PIN +#define AZALIA_SDIN_PIN_0 0x2 +#define AZALIA_SDIN_PIN_1 0x2 +#define AZALIA_SDIN_PIN_2 0x2 +#define AZALIA_SDIN_PIN_3 0x0 #endif /**