[coreboot-gerrit] Patch set updated for coreboot: mainboards/apollolake: use common Chrome EC SMI helpers
Aaron Durbin (adurbin@chromium.org)
gerrit at coreboot.org
Thu Jul 14 16:01:36 CEST 2016
Aaron Durbin (adurbin at chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15687
-gerrit
commit 07aabccd18fa82d2805946cb8d24395546496dd0
Author: Aaron Durbin <adurbin at chromium.org>
Date: Thu Jul 14 00:43:11 2016 -0500
mainboards/apollolake: use common Chrome EC SMI helpers
Reduce duplicate code by using the Chrome EC SMI helper functions.
BUG=chrome-os-partner:54977
Change-Id: Iba2ca7185ad7f0566858ce99f5ad8325ecc243cf
Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
src/mainboard/google/reef/smihandler.c | 48 ++++++---------------------------
src/mainboard/intel/amenia/smihandler.c | 48 ++++++---------------------------
2 files changed, 16 insertions(+), 80 deletions(-)
diff --git a/src/mainboard/google/reef/smihandler.c b/src/mainboard/google/reef/smihandler.c
index edf8190..05d363f 100644
--- a/src/mainboard/google/reef/smihandler.c
+++ b/src/mainboard/google/reef/smihandler.c
@@ -16,56 +16,24 @@
#include <arch/acpi.h>
#include <cpu/x86/smm.h>
-#include <ec/google/chromeec/ec.h>
+#include <ec/google/chromeec/smm.h>
#include <soc/pm.h>
#include "ec.h"
void mainboard_smi_sleep(u8 slp_typ)
{
- if (!IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
- return;
-
- switch (slp_typ) {
- case ACPI_S3:
- /* Enable wake events */
- google_chromeec_set_wake_mask(MAINBOARD_EC_S3_WAKE_EVENTS);
+ if (slp_typ == ACPI_S3)
enable_gpe(GPIO_TIER_1_SCI);
- break;
- case ACPI_S5:
- /* Enable wake events */
- google_chromeec_set_wake_mask(MAINBOARD_EC_S5_WAKE_EVENTS);
- break;
- }
-
- /* Disable SCI and SMI events */
- google_chromeec_set_smi_mask(0);
- google_chromeec_set_sci_mask(0);
- /* Clear pending events that may trigger immediate wake */
- while (google_chromeec_get_event() != 0)
- ;
+ if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
+ chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS,
+ MAINBOARD_EC_S5_WAKE_EVENTS);
}
int mainboard_smi_apmc(u8 apmc)
{
- if (!IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
- return 0;
-
- switch (apmc) {
- case APM_CNT_ACPI_ENABLE:
- google_chromeec_set_smi_mask(0);
- /* Clear all pending events */
- while (google_chromeec_get_event() != 0)
- ;
- google_chromeec_set_sci_mask(MAINBOARD_EC_SCI_EVENTS);
- break;
- case APM_CNT_ACPI_DISABLE:
- google_chromeec_set_sci_mask(0);
- /* Clear all pending events */
- while (google_chromeec_get_event() != 0)
- ;
- google_chromeec_set_smi_mask(MAINBOARD_EC_SMI_EVENTS);
- break;
- }
+ if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
+ chromeec_smi_apmc(apmc, MAINBOARD_EC_SCI_EVENTS,
+ MAINBOARD_EC_SMI_EVENTS);
return 0;
}
diff --git a/src/mainboard/intel/amenia/smihandler.c b/src/mainboard/intel/amenia/smihandler.c
index edf8190..05d363f 100644
--- a/src/mainboard/intel/amenia/smihandler.c
+++ b/src/mainboard/intel/amenia/smihandler.c
@@ -16,56 +16,24 @@
#include <arch/acpi.h>
#include <cpu/x86/smm.h>
-#include <ec/google/chromeec/ec.h>
+#include <ec/google/chromeec/smm.h>
#include <soc/pm.h>
#include "ec.h"
void mainboard_smi_sleep(u8 slp_typ)
{
- if (!IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
- return;
-
- switch (slp_typ) {
- case ACPI_S3:
- /* Enable wake events */
- google_chromeec_set_wake_mask(MAINBOARD_EC_S3_WAKE_EVENTS);
+ if (slp_typ == ACPI_S3)
enable_gpe(GPIO_TIER_1_SCI);
- break;
- case ACPI_S5:
- /* Enable wake events */
- google_chromeec_set_wake_mask(MAINBOARD_EC_S5_WAKE_EVENTS);
- break;
- }
-
- /* Disable SCI and SMI events */
- google_chromeec_set_smi_mask(0);
- google_chromeec_set_sci_mask(0);
- /* Clear pending events that may trigger immediate wake */
- while (google_chromeec_get_event() != 0)
- ;
+ if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
+ chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS,
+ MAINBOARD_EC_S5_WAKE_EVENTS);
}
int mainboard_smi_apmc(u8 apmc)
{
- if (!IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
- return 0;
-
- switch (apmc) {
- case APM_CNT_ACPI_ENABLE:
- google_chromeec_set_smi_mask(0);
- /* Clear all pending events */
- while (google_chromeec_get_event() != 0)
- ;
- google_chromeec_set_sci_mask(MAINBOARD_EC_SCI_EVENTS);
- break;
- case APM_CNT_ACPI_DISABLE:
- google_chromeec_set_sci_mask(0);
- /* Clear all pending events */
- while (google_chromeec_get_event() != 0)
- ;
- google_chromeec_set_smi_mask(MAINBOARD_EC_SMI_EVENTS);
- break;
- }
+ if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
+ chromeec_smi_apmc(apmc, MAINBOARD_EC_SCI_EVENTS,
+ MAINBOARD_EC_SMI_EVENTS);
return 0;
}
More information about the coreboot-gerrit
mailing list