From 9dd1a12f9c3199fe9f678a4997bb163a1eb1bb96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Wed, 6 Nov 2019 11:04:27 +0200 Subject: [PATCH] ELOG: Introduce elog_gsmi variants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This avoids a lot of if (CONFIG(ELOG_GSMI)) boilerplate. Change-Id: I87d25c820daedeb33b3b474a6632a89ea80b0867 Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/36647 Reviewed-by: Aaron Durbin Tested-by: build bot (Jenkins) --- src/ec/google/chromeec/smihandler.c | 4 ++-- src/include/elog.h | 10 ++++++++++ src/mainboard/google/auron/smihandler.c | 4 +--- src/mainboard/google/cyan/smihandler.c | 4 +--- src/mainboard/google/link/mainboard_smi.c | 4 +--- src/mainboard/google/rambi/mainboard_smi.c | 4 +--- src/mainboard/google/slippy/smihandler.c | 4 +--- src/mainboard/intel/strago/smihandler.c | 4 +--- src/soc/amd/picasso/smihandler.c | 3 +-- src/soc/amd/stoneyridge/smihandler.c | 3 +-- src/soc/intel/baytrail/smihandler.c | 15 ++++----------- src/soc/intel/braswell/smihandler.c | 16 +++++----------- src/soc/intel/broadwell/smihandler.c | 15 ++++----------- src/soc/intel/common/block/smm/smihandler.c | 7 +++---- src/soc/intel/fsp_baytrail/smihandler.c | 16 +++++----------- src/southbridge/intel/common/smihandler.c | 15 ++++----------- src/southbridge/intel/lynxpoint/smihandler.c | 15 ++++----------- 17 files changed, 49 insertions(+), 94 deletions(-) diff --git a/src/ec/google/chromeec/smihandler.c b/src/ec/google/chromeec/smihandler.c index eec888ecff..add0db3409 100644 --- a/src/ec/google/chromeec/smihandler.c +++ b/src/ec/google/chromeec/smihandler.c @@ -26,8 +26,8 @@ static int chromeec_process_one_event(void) uint8_t event = google_chromeec_get_event(); /* Log this event */ - if (CONFIG(ELOG_GSMI) && event) - elog_add_event_byte(ELOG_TYPE_EC_EVENT, event); + if (event) + elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, event); switch (event) { case EC_HOST_EVENT_LID_CLOSED: diff --git a/src/include/elog.h b/src/include/elog.h index 1692a809fc..8d1b3ba067 100644 --- a/src/include/elog.h +++ b/src/include/elog.h @@ -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; } #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); #if CONFIG(ELOG_BOOT_COUNT) diff --git a/src/mainboard/google/auron/smihandler.c b/src/mainboard/google/auron/smihandler.c index 790eeff77c..4cc0aa8221 100644 --- a/src/mainboard/google/auron/smihandler.c +++ b/src/mainboard/google/auron/smihandler.c @@ -33,11 +33,9 @@ static u8 mainboard_smi_ec(void) u8 cmd = google_chromeec_get_event(); u32 pm1_cnt; -#if CONFIG(ELOG_GSMI) /* Log this event */ if (cmd) - elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); switch (cmd) { case EC_HOST_EVENT_LID_CLOSED: diff --git a/src/mainboard/google/cyan/smihandler.c b/src/mainboard/google/cyan/smihandler.c index 852d9c9a33..4db638441b 100644 --- a/src/mainboard/google/cyan/smihandler.c +++ b/src/mainboard/google/cyan/smihandler.c @@ -62,11 +62,9 @@ static uint8_t mainboard_smi_ec(void) uint16_t pmbase = get_pmbase(); uint32_t pm1_cnt; -#if CONFIG(ELOG_GSMI) /* Log this event */ if (cmd) - elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); switch (cmd) { case EC_HOST_EVENT_LID_CLOSED: diff --git a/src/mainboard/google/link/mainboard_smi.c b/src/mainboard/google/link/mainboard_smi.c index 96ae1cc1c6..cd8fb092dd 100644 --- a/src/mainboard/google/link/mainboard_smi.c +++ b/src/mainboard/google/link/mainboard_smi.c @@ -32,11 +32,9 @@ static u8 mainboard_smi_ec(void) { u8 cmd = google_chromeec_get_event(); -#if CONFIG(ELOG_GSMI) /* Log this event */ if (cmd) - elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); switch (cmd) { case EC_HOST_EVENT_LID_CLOSED: diff --git a/src/mainboard/google/rambi/mainboard_smi.c b/src/mainboard/google/rambi/mainboard_smi.c index 94f7b2b4cc..250e636fca 100644 --- a/src/mainboard/google/rambi/mainboard_smi.c +++ b/src/mainboard/google/rambi/mainboard_smi.c @@ -34,11 +34,9 @@ static uint8_t mainboard_smi_ec(void) uint16_t pmbase = get_pmbase(); uint32_t pm1_cnt; -#if CONFIG(ELOG_GSMI) /* Log this event */ if (cmd) - elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); switch (cmd) { case EC_HOST_EVENT_LID_CLOSED: diff --git a/src/mainboard/google/slippy/smihandler.c b/src/mainboard/google/slippy/smihandler.c index 81a772c06b..48175880ce 100644 --- a/src/mainboard/google/slippy/smihandler.c +++ b/src/mainboard/google/slippy/smihandler.c @@ -41,11 +41,9 @@ static u8 mainboard_smi_ec(void) u8 cmd = google_chromeec_get_event(); u32 pm1_cnt; -#if CONFIG(ELOG_GSMI) /* Log this event */ if (cmd) - elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); switch (cmd) { case EC_HOST_EVENT_LID_CLOSED: diff --git a/src/mainboard/intel/strago/smihandler.c b/src/mainboard/intel/strago/smihandler.c index 052e830171..a52c4ca76f 100644 --- a/src/mainboard/intel/strago/smihandler.c +++ b/src/mainboard/intel/strago/smihandler.c @@ -61,11 +61,9 @@ static uint8_t mainboard_smi_ec(void) uint16_t pmbase = get_pmbase(); uint32_t pm1_cnt; -#if CONFIG(ELOG_GSMI) /* Log this event */ if (cmd) - elog_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_EC_EVENT, cmd); switch (cmd) { case EC_HOST_EVENT_LID_CLOSED: diff --git a/src/soc/amd/picasso/smihandler.c b/src/soc/amd/picasso/smihandler.c index 4995acb484..39c2dfd09b 100644 --- a/src/soc/amd/picasso/smihandler.c +++ b/src/soc/amd/picasso/smihandler.c @@ -153,8 +153,7 @@ static void sb_slp_typ_handler(void) if (slp_typ >= ACPI_S3) { /* Sleep Type Elog S3, S4, and S5 entry */ - if (CONFIG(ELOG_GSMI)) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); wbinvd(); diff --git a/src/soc/amd/stoneyridge/smihandler.c b/src/soc/amd/stoneyridge/smihandler.c index 9eddf853b6..2b883972c9 100644 --- a/src/soc/amd/stoneyridge/smihandler.c +++ b/src/soc/amd/stoneyridge/smihandler.c @@ -153,8 +153,7 @@ static void sb_slp_typ_handler(void) if (slp_typ >= ACPI_S3) { /* Sleep Type Elog S3, S4, and S5 entry */ - if (CONFIG(ELOG_GSMI)) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); wbinvd(); diff --git a/src/soc/intel/baytrail/smihandler.c b/src/soc/intel/baytrail/smihandler.c index 7de9d960a0..16e2d950b5 100644 --- a/src/soc/intel/baytrail/smihandler.c +++ b/src/soc/intel/baytrail/smihandler.c @@ -114,11 +114,9 @@ static void southbridge_smi_sleep(void) /* Do any mainboard sleep handling */ mainboard_smi_sleep(slp_typ); -#if CONFIG(ELOG_GSMI) /* Log S3, S4, and S5 entry */ if (slp_typ >= ACPI_S3) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); /* 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; } -#if CONFIG(ELOG_GSMI) static void southbridge_smi_gsmi(void) { u32 *ret, *param; @@ -231,7 +228,6 @@ static void southbridge_smi_gsmi(void) /* drivers/elog/gsmi.c */ *ret = gsmi_exec(sub_command, param); } -#endif static void finalize(void) { @@ -348,11 +344,10 @@ static void southbridge_smi_apmc(void) printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs); } break; -#if CONFIG(ELOG_GSMI) case APM_CNT_ELOG_GSMI: - southbridge_smi_gsmi(); + if (CONFIG(ELOG_GSMI)) + southbridge_smi_gsmi(); break; -#endif case APM_CNT_FINALIZE: finalize(); break; @@ -374,9 +369,7 @@ static void southbridge_smi_pm1(void) */ if (pm1_sts & PWRBTN_STS) { // power button pressed -#if CONFIG(ELOG_GSMI) - elog_add_event(ELOG_TYPE_POWER_BUTTON); -#endif + elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON); disable_pm1_control(-1UL); enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT)); } diff --git a/src/soc/intel/braswell/smihandler.c b/src/soc/intel/braswell/smihandler.c index 174cd5d7ef..b94fe653ad 100644 --- a/src/soc/intel/braswell/smihandler.c +++ b/src/soc/intel/braswell/smihandler.c @@ -154,11 +154,10 @@ static void southbridge_smi_sleep(void) /* Do any mainboard sleep handling */ mainboard_smi_sleep(slp_typ); -#if CONFIG(ELOG_GSMI) /* Log S3, S4, and S5 entry */ if (slp_typ >= ACPI_S3) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); + /* Clear pending GPE events */ clear_gpe_status(); @@ -260,7 +259,6 @@ static em64t100_smm_state_save_area_t *smi_apmc_find_state_save(uint8_t cmd) return NULL; } -#if CONFIG(ELOG_GSMI) static void southbridge_smi_gsmi(void) { u32 *ret, *param; @@ -281,7 +279,6 @@ static void southbridge_smi_gsmi(void) /* drivers/elog/gsmi.c */ *ret = gsmi_exec(sub_command, param); } -#endif static void finalize(void) { @@ -346,11 +343,10 @@ static void southbridge_smi_apmc(void) printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs); } break; -#if CONFIG(ELOG_GSMI) case APM_CNT_ELOG_GSMI: - southbridge_smi_gsmi(); + if (CONFIG(ELOG_GSMI)) + southbridge_smi_gsmi(); break; -#endif case APM_CNT_FINALIZE: finalize(); break; @@ -369,9 +365,7 @@ static void southbridge_smi_pm1(void) */ if (pm1_sts & PWRBTN_STS) { /* power button pressed */ -#if CONFIG(ELOG_GSMI) - elog_add_event(ELOG_TYPE_POWER_BUTTON); -#endif + elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON); disable_pm1_control(-1UL); enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT)); } diff --git a/src/soc/intel/broadwell/smihandler.c b/src/soc/intel/broadwell/smihandler.c index bad158748d..d37f65a16f 100644 --- a/src/soc/intel/broadwell/smihandler.c +++ b/src/soc/intel/broadwell/smihandler.c @@ -179,11 +179,9 @@ static void southbridge_smi_sleep(void) /* USB sleep preparations */ usb_xhci_sleep_prepare(PCH_DEV_XHCI, slp_typ); -#if CONFIG(ELOG_GSMI) /* Log S3, S4, and S5 entry */ if (slp_typ >= ACPI_S3) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); /* Clear pending GPE events */ clear_gpe_status(); @@ -293,7 +291,6 @@ static em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u8 cmd) return NULL; } -#if CONFIG(ELOG_GSMI) static void southbridge_smi_gsmi(void) { u32 *ret, *param; @@ -314,7 +311,6 @@ static void southbridge_smi_gsmi(void) /* drivers/elog/gsmi.c */ *ret = gsmi_exec(sub_command, param); } -#endif static void finalize(void) { @@ -372,11 +368,10 @@ static void southbridge_smi_apmc(void) printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs); } break; -#if CONFIG(ELOG_GSMI) case APM_CNT_ELOG_GSMI: - southbridge_smi_gsmi(); + if (CONFIG(ELOG_GSMI)) + southbridge_smi_gsmi(); break; -#endif } mainboard_smi_apmc(reg8); @@ -391,9 +386,7 @@ static void southbridge_smi_pm1(void) */ if (pm1_sts & PWRBTN_STS) { /* power button pressed */ -#if CONFIG(ELOG_GSMI) - elog_add_event(ELOG_TYPE_POWER_BUTTON); -#endif + elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON); disable_pm1_control(-1UL); enable_pm1_control(SLP_EN | (SLP_TYP_S5 << 10)); } diff --git a/src/soc/intel/common/block/smm/smihandler.c b/src/soc/intel/common/block/smm/smihandler.c index 9e98aae564..0581d23021 100644 --- a/src/soc/intel/common/block/smm/smihandler.c +++ b/src/soc/intel/common/block/smm/smihandler.c @@ -195,8 +195,8 @@ void smihandler_southbridge_sleep( mainboard_smi_sleep(slp_typ); /* Log S3, S4, and S5 entry */ - if (slp_typ >= ACPI_S3 && CONFIG(ELOG_GSMI)) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); + if (slp_typ >= ACPI_S3) + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); /* Clear pending GPE events */ pmc_clear_all_gpe_status(); @@ -413,8 +413,7 @@ void smihandler_southbridge_pm1( */ if ((pm1_sts & PWRBTN_STS) && (pm1_en & PWRBTN_EN)) { /* power button pressed */ - if (CONFIG(ELOG_GSMI)) - elog_add_event(ELOG_TYPE_POWER_BUTTON); + elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON); pmc_disable_pm1_control(-1UL); pmc_enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT)); } diff --git a/src/soc/intel/fsp_baytrail/smihandler.c b/src/soc/intel/fsp_baytrail/smihandler.c index 2a7376ad7d..1a8fb4b6e6 100644 --- a/src/soc/intel/fsp_baytrail/smihandler.c +++ b/src/soc/intel/fsp_baytrail/smihandler.c @@ -112,11 +112,9 @@ static void southbridge_smi_sleep(void) /* Do any mainboard sleep handling */ mainboard_smi_sleep(slp_typ); -#if CONFIG(ELOG_GSMI) /* Log S3, S4, and S5 entry */ if (slp_typ >= ACPI_S3) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); /* 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; } -#if CONFIG(ELOG_GSMI) static void southbridge_smi_gsmi(void) { u32 *ret, *param; @@ -229,7 +226,7 @@ static void southbridge_smi_gsmi(void) /* drivers/elog/gsmi.c */ *ret = gsmi_exec(sub_command, param); } -#endif + static void southbridge_smi_apmc(void) { uint8_t reg8; @@ -275,11 +272,10 @@ static void southbridge_smi_apmc(void) printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs); } break; -#if CONFIG(ELOG_GSMI) case APM_CNT_ELOG_GSMI: - southbridge_smi_gsmi(); + if (CONFIG(ELOG_GSMI)) + southbridge_smi_gsmi(); break; -#endif } mainboard_smi_apmc(reg8); @@ -294,9 +290,7 @@ static void southbridge_smi_pm1(void) */ if (pm1_sts & PWRBTN_STS) { // power button pressed -#if CONFIG(ELOG_GSMI) - elog_add_event(ELOG_TYPE_POWER_BUTTON); -#endif + elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON); disable_pm1_control(-1UL); enable_pm1_control(SLP_EN | (SLP_TYP_S5 << SLP_TYP_SHIFT)); } diff --git a/src/southbridge/intel/common/smihandler.c b/src/southbridge/intel/common/smihandler.c index 5582051bc5..7f376fd354 100644 --- a/src/southbridge/intel/common/smihandler.c +++ b/src/southbridge/intel/common/smihandler.c @@ -138,11 +138,9 @@ static void southbridge_smi_sleep(void) /* Do any mainboard sleep handling */ mainboard_smi_sleep(slp_typ); -#if CONFIG(ELOG_GSMI) /* Log S3, S4, and S5 entry */ if (slp_typ >= ACPI_S3) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); /* Next, do the deed. */ @@ -246,7 +244,6 @@ em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u8 cmd) return NULL; } -#if CONFIG(ELOG_GSMI) static void southbridge_smi_gsmi(void) { u32 *ret, *param; @@ -267,7 +264,6 @@ static void southbridge_smi_gsmi(void) /* drivers/elog/gsmi.c */ *ret = gsmi_exec(sub_command, param); } -#endif static void southbridge_smi_store(void) { @@ -338,11 +334,10 @@ static void southbridge_smi_apmc(void) southbridge_finalize_all(); mainboard_finalized = 1; break; -#if CONFIG(ELOG_GSMI) case APM_CNT_ELOG_GSMI: - southbridge_smi_gsmi(); + if (CONFIG(ELOG_GSMI)) + southbridge_smi_gsmi(); break; -#endif case APM_CNT_SMMSTORE: if (CONFIG(SMMSTORE)) southbridge_smi_store(); @@ -366,9 +361,7 @@ static void southbridge_smi_pm1(void) // power button pressed u32 reg32; reg32 = (7 << 10) | (1 << 13); -#if CONFIG(ELOG_GSMI) - elog_add_event(ELOG_TYPE_POWER_BUTTON); -#endif + elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON); write_pmbase32(PM1_CNT, reg32); } } diff --git a/src/southbridge/intel/lynxpoint/smihandler.c b/src/southbridge/intel/lynxpoint/smihandler.c index de2866e08c..61f86fb067 100644 --- a/src/southbridge/intel/lynxpoint/smihandler.c +++ b/src/southbridge/intel/lynxpoint/smihandler.c @@ -140,11 +140,9 @@ static void southbridge_smi_sleep(void) #endif usb_xhci_sleep_prepare(PCH_XHCI_DEV, slp_typ); -#if CONFIG(ELOG_GSMI) /* Log S3, S4, and S5 entry */ if (slp_typ >= ACPI_S3) - elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); -#endif + elog_gsmi_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ); /* Next, do the deed. */ @@ -247,7 +245,6 @@ static em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u8 cmd) return NULL; } -#if CONFIG(ELOG_GSMI) static void southbridge_smi_gsmi(void) { u32 *ret, *param; @@ -268,7 +265,6 @@ static void southbridge_smi_gsmi(void) /* drivers/elog/gsmi.c */ *ret = gsmi_exec(sub_command, param); } -#endif static void southbridge_smi_apmc(void) { @@ -332,11 +328,10 @@ static void southbridge_smi_apmc(void) case 0xca: usb_xhci_route_all(); break; -#if CONFIG(ELOG_GSMI) case APM_CNT_ELOG_GSMI: - southbridge_smi_gsmi(); + if (CONFIG(ELOG_GSMI)) + southbridge_smi_gsmi(); break; -#endif } mainboard_smi_apmc(reg8); @@ -351,9 +346,7 @@ static void southbridge_smi_pm1(void) */ if (pm1_sts & PWRBTN_STS) { // power button pressed -#if CONFIG(ELOG_GSMI) - elog_add_event(ELOG_TYPE_POWER_BUTTON); -#endif + elog_gsmi_add_event(ELOG_TYPE_POWER_BUTTON); disable_pm1_control(-1UL); enable_pm1_control(SLP_EN | (SLP_TYP_S5 << 10)); }