ELOG: Introduce elog_gsmi variants
This avoids a lot of if (CONFIG(ELOG_GSMI)) boilerplate. Change-Id: I87d25c820daedeb33b3b474a6632a89ea80b0867 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/36647 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
7e4bfe4b91
commit
9dd1a12f9c
|
@ -26,8 +26,8 @@ static int chromeec_process_one_event(void)
|
||||||
uint8_t event = google_chromeec_get_event();
|
uint8_t event = google_chromeec_get_event();
|
||||||
|
|
||||||
/* Log this event */
|
/* Log this event */
|
||||||
if (CONFIG(ELOG_GSMI) && event)
|
if (event)
|
||||||
elog_add_event_byte(ELOG_TYPE_EC_EVENT, event);
|
elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, event);
|
||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case EC_HOST_EVENT_LID_CLOSED:
|
case EC_HOST_EVENT_LID_CLOSED:
|
||||||
|
|
|
@ -243,6 +243,16 @@ static inline int elog_smbios_write_type15(unsigned long *current,
|
||||||
static inline int elog_add_extended_event(u8 type, u32 complement) { return 0; }
|
static inline int elog_add_extended_event(u8 type, u32 complement) { return 0; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG(ELOG_GSMI)
|
||||||
|
#define elog_gsmi_add_event elog_add_event
|
||||||
|
#define elog_gsmi_add_event_byte elog_add_event_byte
|
||||||
|
#define elog_gsmi_add_event_word elog_add_event_word
|
||||||
|
#else
|
||||||
|
static inline int elog_gsmi_add_event(u8 event_type) { return 0; }
|
||||||
|
static inline int elog_gsmi_add_event_byte(u8 event_type, u8 data) { return 0; }
|
||||||
|
static inline int elog_gsmi_add_event_word(u8 event_type, u16 data) { return 0; }
|
||||||
|
#endif
|
||||||
|
|
||||||
extern u32 gsmi_exec(u8 command, u32 *param);
|
extern u32 gsmi_exec(u8 command, u32 *param);
|
||||||
|
|
||||||
#if CONFIG(ELOG_BOOT_COUNT)
|
#if CONFIG(ELOG_BOOT_COUNT)
|
||||||
|
|
|
@ -33,11 +33,9 @@ static u8 mainboard_smi_ec(void)
|
||||||
u8 cmd = google_chromeec_get_event();
|
u8 cmd = google_chromeec_get_event();
|
||||||
u32 pm1_cnt;
|
u32 pm1_cnt;
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log this event */
|
/* Log this event */
|
||||||
if (cmd)
|
if (cmd)
|
||||||
elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case EC_HOST_EVENT_LID_CLOSED:
|
case EC_HOST_EVENT_LID_CLOSED:
|
||||||
|
|
|
@ -62,11 +62,9 @@ static uint8_t mainboard_smi_ec(void)
|
||||||
uint16_t pmbase = get_pmbase();
|
uint16_t pmbase = get_pmbase();
|
||||||
uint32_t pm1_cnt;
|
uint32_t pm1_cnt;
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log this event */
|
/* Log this event */
|
||||||
if (cmd)
|
if (cmd)
|
||||||
elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case EC_HOST_EVENT_LID_CLOSED:
|
case EC_HOST_EVENT_LID_CLOSED:
|
||||||
|
|
|
@ -32,11 +32,9 @@ static u8 mainboard_smi_ec(void)
|
||||||
{
|
{
|
||||||
u8 cmd = google_chromeec_get_event();
|
u8 cmd = google_chromeec_get_event();
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log this event */
|
/* Log this event */
|
||||||
if (cmd)
|
if (cmd)
|
||||||
elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case EC_HOST_EVENT_LID_CLOSED:
|
case EC_HOST_EVENT_LID_CLOSED:
|
||||||
|
|
|
@ -34,11 +34,9 @@ static uint8_t mainboard_smi_ec(void)
|
||||||
uint16_t pmbase = get_pmbase();
|
uint16_t pmbase = get_pmbase();
|
||||||
uint32_t pm1_cnt;
|
uint32_t pm1_cnt;
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log this event */
|
/* Log this event */
|
||||||
if (cmd)
|
if (cmd)
|
||||||
elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case EC_HOST_EVENT_LID_CLOSED:
|
case EC_HOST_EVENT_LID_CLOSED:
|
||||||
|
|
|
@ -41,11 +41,9 @@ static u8 mainboard_smi_ec(void)
|
||||||
u8 cmd = google_chromeec_get_event();
|
u8 cmd = google_chromeec_get_event();
|
||||||
u32 pm1_cnt;
|
u32 pm1_cnt;
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log this event */
|
/* Log this event */
|
||||||
if (cmd)
|
if (cmd)
|
||||||
elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case EC_HOST_EVENT_LID_CLOSED:
|
case EC_HOST_EVENT_LID_CLOSED:
|
||||||
|
|
|
@ -61,11 +61,9 @@ static uint8_t mainboard_smi_ec(void)
|
||||||
uint16_t pmbase = get_pmbase();
|
uint16_t pmbase = get_pmbase();
|
||||||
uint32_t pm1_cnt;
|
uint32_t pm1_cnt;
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log this event */
|
/* Log this event */
|
||||||
if (cmd)
|
if (cmd)
|
||||||
elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd);
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case EC_HOST_EVENT_LID_CLOSED:
|
case EC_HOST_EVENT_LID_CLOSED:
|
||||||
|
|
|
@ -153,8 +153,7 @@ static void sb_slp_typ_handler(void)
|
||||||
|
|
||||||
if (slp_typ >= ACPI_S3) {
|
if (slp_typ >= ACPI_S3) {
|
||||||
/* Sleep Type Elog S3, S4, and S5 entry */
|
/* Sleep Type Elog S3, S4, and S5 entry */
|
||||||
if (CONFIG(ELOG_GSMI))
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
|
||||||
|
|
||||||
wbinvd();
|
wbinvd();
|
||||||
|
|
||||||
|
|
|
@ -153,8 +153,7 @@ static void sb_slp_typ_handler(void)
|
||||||
|
|
||||||
if (slp_typ >= ACPI_S3) {
|
if (slp_typ >= ACPI_S3) {
|
||||||
/* Sleep Type Elog S3, S4, and S5 entry */
|
/* Sleep Type Elog S3, S4, and S5 entry */
|
||||||
if (CONFIG(ELOG_GSMI))
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
|
||||||
|
|
||||||
wbinvd();
|
wbinvd();
|
||||||
|
|
||||||
|
|
|
@ -114,11 +114,9 @@ static void southbridge_smi_sleep(void)
|
||||||
/* Do any mainboard sleep handling */
|
/* Do any mainboard sleep handling */
|
||||||
mainboard_smi_sleep(slp_typ);
|
mainboard_smi_sleep(slp_typ);
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log S3, S4, and S5 entry */
|
/* Log S3, S4, and S5 entry */
|
||||||
if (slp_typ >= ACPI_S3)
|
if (slp_typ >= ACPI_S3)
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Next, do the deed.
|
/* Next, do the deed.
|
||||||
*/
|
*/
|
||||||
|
@ -210,7 +208,6 @@ static em64t100_smm_state_save_area_t *smi_apmc_find_state_save(uint8_t cmd)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
static void southbridge_smi_gsmi(void)
|
static void southbridge_smi_gsmi(void)
|
||||||
{
|
{
|
||||||
u32 *ret, *param;
|
u32 *ret, *param;
|
||||||
|
@ -231,7 +228,6 @@ static void southbridge_smi_gsmi(void)
|
||||||
/* drivers/elog/gsmi.c */
|
/* drivers/elog/gsmi.c */
|
||||||
*ret = gsmi_exec(sub_command, param);
|
*ret = gsmi_exec(sub_command, param);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void finalize(void)
|
static void finalize(void)
|
||||||
{
|
{
|
||||||
|
@ -348,11 +344,10 @@ static void southbridge_smi_apmc(void)
|
||||||
printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs);
|
printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
case APM_CNT_ELOG_GSMI:
|
case APM_CNT_ELOG_GSMI:
|
||||||
|
if (CONFIG(ELOG_GSMI))
|
||||||
southbridge_smi_gsmi();
|
southbridge_smi_gsmi();
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
case APM_CNT_FINALIZE:
|
case APM_CNT_FINALIZE:
|
||||||
finalize();
|
finalize();
|
||||||
break;
|
break;
|
||||||
|
@ -374,9 +369,7 @@ static void southbridge_smi_pm1(void)
|
||||||
*/
|
*/
|
||||||
if (pm1_sts & PWRBTN_STS) {
|
if (pm1_sts & PWRBTN_STS) {
|
||||||
// power button pressed
|
// power button pressed
|
||||||
#if CONFIG(ELOG_GSMI)
|
elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON);
|
||||||
elog_add_event(ELOG_TYPE_POWER_BUTTON);
|
|
||||||
#endif
|
|
||||||
disable_pm1_control(-1UL);
|
disable_pm1_control(-1UL);
|
||||||
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT));
|
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT));
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,11 +154,10 @@ static void southbridge_smi_sleep(void)
|
||||||
/* Do any mainboard sleep handling */
|
/* Do any mainboard sleep handling */
|
||||||
mainboard_smi_sleep(slp_typ);
|
mainboard_smi_sleep(slp_typ);
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log S3, S4, and S5 entry */
|
/* Log S3, S4, and S5 entry */
|
||||||
if (slp_typ >= ACPI_S3)
|
if (slp_typ >= ACPI_S3)
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
#endif
|
|
||||||
/* Clear pending GPE events */
|
/* Clear pending GPE events */
|
||||||
clear_gpe_status();
|
clear_gpe_status();
|
||||||
|
|
||||||
|
@ -260,7 +259,6 @@ static em64t100_smm_state_save_area_t *smi_apmc_find_state_save(uint8_t cmd)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
static void southbridge_smi_gsmi(void)
|
static void southbridge_smi_gsmi(void)
|
||||||
{
|
{
|
||||||
u32 *ret, *param;
|
u32 *ret, *param;
|
||||||
|
@ -281,7 +279,6 @@ static void southbridge_smi_gsmi(void)
|
||||||
/* drivers/elog/gsmi.c */
|
/* drivers/elog/gsmi.c */
|
||||||
*ret = gsmi_exec(sub_command, param);
|
*ret = gsmi_exec(sub_command, param);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void finalize(void)
|
static void finalize(void)
|
||||||
{
|
{
|
||||||
|
@ -346,11 +343,10 @@ static void southbridge_smi_apmc(void)
|
||||||
printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs);
|
printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
case APM_CNT_ELOG_GSMI:
|
case APM_CNT_ELOG_GSMI:
|
||||||
|
if (CONFIG(ELOG_GSMI))
|
||||||
southbridge_smi_gsmi();
|
southbridge_smi_gsmi();
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
case APM_CNT_FINALIZE:
|
case APM_CNT_FINALIZE:
|
||||||
finalize();
|
finalize();
|
||||||
break;
|
break;
|
||||||
|
@ -369,9 +365,7 @@ static void southbridge_smi_pm1(void)
|
||||||
*/
|
*/
|
||||||
if (pm1_sts & PWRBTN_STS) {
|
if (pm1_sts & PWRBTN_STS) {
|
||||||
/* power button pressed */
|
/* power button pressed */
|
||||||
#if CONFIG(ELOG_GSMI)
|
elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON);
|
||||||
elog_add_event(ELOG_TYPE_POWER_BUTTON);
|
|
||||||
#endif
|
|
||||||
disable_pm1_control(-1UL);
|
disable_pm1_control(-1UL);
|
||||||
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT));
|
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT));
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,11 +179,9 @@ static void southbridge_smi_sleep(void)
|
||||||
/* USB sleep preparations */
|
/* USB sleep preparations */
|
||||||
usb_xhci_sleep_prepare(PCH_DEV_XHCI, slp_typ);
|
usb_xhci_sleep_prepare(PCH_DEV_XHCI, slp_typ);
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log S3, S4, and S5 entry */
|
/* Log S3, S4, and S5 entry */
|
||||||
if (slp_typ >= ACPI_S3)
|
if (slp_typ >= ACPI_S3)
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Clear pending GPE events */
|
/* Clear pending GPE events */
|
||||||
clear_gpe_status();
|
clear_gpe_status();
|
||||||
|
@ -293,7 +291,6 @@ static em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u8 cmd)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
static void southbridge_smi_gsmi(void)
|
static void southbridge_smi_gsmi(void)
|
||||||
{
|
{
|
||||||
u32 *ret, *param;
|
u32 *ret, *param;
|
||||||
|
@ -314,7 +311,6 @@ static void southbridge_smi_gsmi(void)
|
||||||
/* drivers/elog/gsmi.c */
|
/* drivers/elog/gsmi.c */
|
||||||
*ret = gsmi_exec(sub_command, param);
|
*ret = gsmi_exec(sub_command, param);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void finalize(void)
|
static void finalize(void)
|
||||||
{
|
{
|
||||||
|
@ -372,11 +368,10 @@ static void southbridge_smi_apmc(void)
|
||||||
printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs);
|
printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
case APM_CNT_ELOG_GSMI:
|
case APM_CNT_ELOG_GSMI:
|
||||||
|
if (CONFIG(ELOG_GSMI))
|
||||||
southbridge_smi_gsmi();
|
southbridge_smi_gsmi();
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mainboard_smi_apmc(reg8);
|
mainboard_smi_apmc(reg8);
|
||||||
|
@ -391,9 +386,7 @@ static void southbridge_smi_pm1(void)
|
||||||
*/
|
*/
|
||||||
if (pm1_sts & PWRBTN_STS) {
|
if (pm1_sts & PWRBTN_STS) {
|
||||||
/* power button pressed */
|
/* power button pressed */
|
||||||
#if CONFIG(ELOG_GSMI)
|
elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON);
|
||||||
elog_add_event(ELOG_TYPE_POWER_BUTTON);
|
|
||||||
#endif
|
|
||||||
disable_pm1_control(-1UL);
|
disable_pm1_control(-1UL);
|
||||||
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << 10));
|
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << 10));
|
||||||
}
|
}
|
||||||
|
|
|
@ -195,8 +195,8 @@ void smihandler_southbridge_sleep(
|
||||||
mainboard_smi_sleep(slp_typ);
|
mainboard_smi_sleep(slp_typ);
|
||||||
|
|
||||||
/* Log S3, S4, and S5 entry */
|
/* Log S3, S4, and S5 entry */
|
||||||
if (slp_typ >= ACPI_S3 && CONFIG(ELOG_GSMI))
|
if (slp_typ >= ACPI_S3)
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
|
|
||||||
/* Clear pending GPE events */
|
/* Clear pending GPE events */
|
||||||
pmc_clear_all_gpe_status();
|
pmc_clear_all_gpe_status();
|
||||||
|
@ -413,8 +413,7 @@ void smihandler_southbridge_pm1(
|
||||||
*/
|
*/
|
||||||
if ((pm1_sts & PWRBTN_STS) && (pm1_en & PWRBTN_EN)) {
|
if ((pm1_sts & PWRBTN_STS) && (pm1_en & PWRBTN_EN)) {
|
||||||
/* power button pressed */
|
/* power button pressed */
|
||||||
if (CONFIG(ELOG_GSMI))
|
elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON);
|
||||||
elog_add_event(ELOG_TYPE_POWER_BUTTON);
|
|
||||||
pmc_disable_pm1_control(-1UL);
|
pmc_disable_pm1_control(-1UL);
|
||||||
pmc_enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT));
|
pmc_enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT));
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,11 +112,9 @@ static void southbridge_smi_sleep(void)
|
||||||
/* Do any mainboard sleep handling */
|
/* Do any mainboard sleep handling */
|
||||||
mainboard_smi_sleep(slp_typ);
|
mainboard_smi_sleep(slp_typ);
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log S3, S4, and S5 entry */
|
/* Log S3, S4, and S5 entry */
|
||||||
if (slp_typ >= ACPI_S3)
|
if (slp_typ >= ACPI_S3)
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Next, do the deed.
|
/* Next, do the deed.
|
||||||
*/
|
*/
|
||||||
|
@ -208,7 +206,6 @@ static em64t100_smm_state_save_area_t *smi_apmc_find_state_save(uint8_t cmd)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
static void southbridge_smi_gsmi(void)
|
static void southbridge_smi_gsmi(void)
|
||||||
{
|
{
|
||||||
u32 *ret, *param;
|
u32 *ret, *param;
|
||||||
|
@ -229,7 +226,7 @@ static void southbridge_smi_gsmi(void)
|
||||||
/* drivers/elog/gsmi.c */
|
/* drivers/elog/gsmi.c */
|
||||||
*ret = gsmi_exec(sub_command, param);
|
*ret = gsmi_exec(sub_command, param);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
static void southbridge_smi_apmc(void)
|
static void southbridge_smi_apmc(void)
|
||||||
{
|
{
|
||||||
uint8_t reg8;
|
uint8_t reg8;
|
||||||
|
@ -275,11 +272,10 @@ static void southbridge_smi_apmc(void)
|
||||||
printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs);
|
printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
case APM_CNT_ELOG_GSMI:
|
case APM_CNT_ELOG_GSMI:
|
||||||
|
if (CONFIG(ELOG_GSMI))
|
||||||
southbridge_smi_gsmi();
|
southbridge_smi_gsmi();
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mainboard_smi_apmc(reg8);
|
mainboard_smi_apmc(reg8);
|
||||||
|
@ -294,9 +290,7 @@ static void southbridge_smi_pm1(void)
|
||||||
*/
|
*/
|
||||||
if (pm1_sts & PWRBTN_STS) {
|
if (pm1_sts & PWRBTN_STS) {
|
||||||
// power button pressed
|
// power button pressed
|
||||||
#if CONFIG(ELOG_GSMI)
|
elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON);
|
||||||
elog_add_event(ELOG_TYPE_POWER_BUTTON);
|
|
||||||
#endif
|
|
||||||
disable_pm1_control(-1UL);
|
disable_pm1_control(-1UL);
|
||||||
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT));
|
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT));
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,11 +138,9 @@ static void southbridge_smi_sleep(void)
|
||||||
/* Do any mainboard sleep handling */
|
/* Do any mainboard sleep handling */
|
||||||
mainboard_smi_sleep(slp_typ);
|
mainboard_smi_sleep(slp_typ);
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log S3, S4, and S5 entry */
|
/* Log S3, S4, and S5 entry */
|
||||||
if (slp_typ >= ACPI_S3)
|
if (slp_typ >= ACPI_S3)
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Next, do the deed.
|
/* Next, do the deed.
|
||||||
*/
|
*/
|
||||||
|
@ -246,7 +244,6 @@ em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u8 cmd)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
static void southbridge_smi_gsmi(void)
|
static void southbridge_smi_gsmi(void)
|
||||||
{
|
{
|
||||||
u32 *ret, *param;
|
u32 *ret, *param;
|
||||||
|
@ -267,7 +264,6 @@ static void southbridge_smi_gsmi(void)
|
||||||
/* drivers/elog/gsmi.c */
|
/* drivers/elog/gsmi.c */
|
||||||
*ret = gsmi_exec(sub_command, param);
|
*ret = gsmi_exec(sub_command, param);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void southbridge_smi_store(void)
|
static void southbridge_smi_store(void)
|
||||||
{
|
{
|
||||||
|
@ -338,11 +334,10 @@ static void southbridge_smi_apmc(void)
|
||||||
southbridge_finalize_all();
|
southbridge_finalize_all();
|
||||||
mainboard_finalized = 1;
|
mainboard_finalized = 1;
|
||||||
break;
|
break;
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
case APM_CNT_ELOG_GSMI:
|
case APM_CNT_ELOG_GSMI:
|
||||||
|
if (CONFIG(ELOG_GSMI))
|
||||||
southbridge_smi_gsmi();
|
southbridge_smi_gsmi();
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
case APM_CNT_SMMSTORE:
|
case APM_CNT_SMMSTORE:
|
||||||
if (CONFIG(SMMSTORE))
|
if (CONFIG(SMMSTORE))
|
||||||
southbridge_smi_store();
|
southbridge_smi_store();
|
||||||
|
@ -366,9 +361,7 @@ static void southbridge_smi_pm1(void)
|
||||||
// power button pressed
|
// power button pressed
|
||||||
u32 reg32;
|
u32 reg32;
|
||||||
reg32 = (7 << 10) | (1 << 13);
|
reg32 = (7 << 10) | (1 << 13);
|
||||||
#if CONFIG(ELOG_GSMI)
|
elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON);
|
||||||
elog_add_event(ELOG_TYPE_POWER_BUTTON);
|
|
||||||
#endif
|
|
||||||
write_pmbase32(PM1_CNT, reg32);
|
write_pmbase32(PM1_CNT, reg32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,11 +140,9 @@ static void southbridge_smi_sleep(void)
|
||||||
#endif
|
#endif
|
||||||
usb_xhci_sleep_prepare(PCH_XHCI_DEV, slp_typ);
|
usb_xhci_sleep_prepare(PCH_XHCI_DEV, slp_typ);
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
/* Log S3, S4, and S5 entry */
|
/* Log S3, S4, and S5 entry */
|
||||||
if (slp_typ >= ACPI_S3)
|
if (slp_typ >= ACPI_S3)
|
||||||
elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Next, do the deed.
|
/* Next, do the deed.
|
||||||
*/
|
*/
|
||||||
|
@ -247,7 +245,6 @@ static em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u8 cmd)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
static void southbridge_smi_gsmi(void)
|
static void southbridge_smi_gsmi(void)
|
||||||
{
|
{
|
||||||
u32 *ret, *param;
|
u32 *ret, *param;
|
||||||
|
@ -268,7 +265,6 @@ static void southbridge_smi_gsmi(void)
|
||||||
/* drivers/elog/gsmi.c */
|
/* drivers/elog/gsmi.c */
|
||||||
*ret = gsmi_exec(sub_command, param);
|
*ret = gsmi_exec(sub_command, param);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void southbridge_smi_apmc(void)
|
static void southbridge_smi_apmc(void)
|
||||||
{
|
{
|
||||||
|
@ -332,11 +328,10 @@ static void southbridge_smi_apmc(void)
|
||||||
case 0xca:
|
case 0xca:
|
||||||
usb_xhci_route_all();
|
usb_xhci_route_all();
|
||||||
break;
|
break;
|
||||||
#if CONFIG(ELOG_GSMI)
|
|
||||||
case APM_CNT_ELOG_GSMI:
|
case APM_CNT_ELOG_GSMI:
|
||||||
|
if (CONFIG(ELOG_GSMI))
|
||||||
southbridge_smi_gsmi();
|
southbridge_smi_gsmi();
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mainboard_smi_apmc(reg8);
|
mainboard_smi_apmc(reg8);
|
||||||
|
@ -351,9 +346,7 @@ static void southbridge_smi_pm1(void)
|
||||||
*/
|
*/
|
||||||
if (pm1_sts & PWRBTN_STS) {
|
if (pm1_sts & PWRBTN_STS) {
|
||||||
// power button pressed
|
// power button pressed
|
||||||
#if CONFIG(ELOG_GSMI)
|
elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON);
|
||||||
elog_add_event(ELOG_TYPE_POWER_BUTTON);
|
|
||||||
#endif
|
|
||||||
disable_pm1_control(-1UL);
|
disable_pm1_control(-1UL);
|
||||||
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << 10));
|
enable_pm1_control(SLP_EN | (SLP_TYP_S5 << 10));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue