diff options
author | Felix Held <felix-coreboot@felixheld.de> | 2021-02-10 01:32:00 +0100 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2021-02-11 00:50:52 +0000 |
commit | a6fc2125e78eb7db537733ee7d33f59e723a27c1 (patch) | |
tree | 57369317929a71f6863572bfdd1a4d8094ede3fd | |
parent | 4f69ab729a9e0fe929728c5726e78f7769fe5a3a (diff) |
soc/amd*/smihandler: factor out and rename clear_smi_sci_status
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ifd6c3bebee1ccf7e7e7987d8ae3d9fa654019791
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50460
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/soc/amd/common/block/include/amdblocks/smi.h | 1 | ||||
-rw-r--r-- | src/soc/amd/common/block/smi/smi_util.c | 5 | ||||
-rw-r--r-- | src/soc/amd/picasso/smihandler.c | 11 | ||||
-rw-r--r-- | src/soc/amd/stoneyridge/smihandler.c | 11 |
4 files changed, 10 insertions, 18 deletions
diff --git a/src/soc/amd/common/block/include/amdblocks/smi.h b/src/soc/amd/common/block/include/amdblocks/smi.h index 25a1da7f34..97edd2c9c6 100644 --- a/src/soc/amd/common/block/include/amdblocks/smi.h +++ b/src/soc/amd/common/block/include/amdblocks/smi.h @@ -48,5 +48,6 @@ void disable_gevent_smi(uint8_t gevent); void gpe_configure_sci(const struct sci_source *scis, size_t num_gpes); void soc_route_sci(uint8_t event); void clear_all_smi_status(void); +void clear_smi_sci_status(void); #endif /* AMD_BLOCK_SMI_H */ diff --git a/src/soc/amd/common/block/smi/smi_util.c b/src/soc/amd/common/block/smi/smi_util.c index aa37dabe06..b763c3ba1a 100644 --- a/src/soc/amd/common/block/smi/smi_util.c +++ b/src/soc/amd/common/block/smi/smi_util.c @@ -154,3 +154,8 @@ void clear_all_smi_status(void) smi_write32(SMI_REG_SMISTS3, smi_read32(SMI_REG_SMISTS3)); smi_write32(SMI_REG_SMISTS4, smi_read32(SMI_REG_SMISTS4)); } + +void clear_smi_sci_status(void) +{ + smi_write32(SMI_SCI_STATUS, smi_read32(SMI_SCI_STATUS)); +} diff --git a/src/soc/amd/picasso/smihandler.c b/src/soc/amd/picasso/smihandler.c index 5134358cb7..626daad00a 100644 --- a/src/soc/amd/picasso/smihandler.c +++ b/src/soc/amd/picasso/smihandler.c @@ -222,14 +222,6 @@ static const struct smi_sources_t smi_sources[] = { { .type = SMITYPE_SLP_TYP, .handler = sb_slp_typ_handler}, }; -static void process_smi_sci(void) -{ - const uint32_t status = smi_read32(SMI_SCI_STATUS); - - /* Clear events to prevent re-entering SMI if event isn't handled */ - smi_write32(SMI_SCI_STATUS, status); -} - static void *get_source_handler(int source) { int i; @@ -270,7 +262,8 @@ void southbridge_smi_handler(void) const uint16_t smi_src = smi_read16(SMI_REG_POINTER); if (smi_src & SMI_STATUS_SRC_SCI) - process_smi_sci(); + /* Clear events to prevent re-entering SMI if event isn't handled */ + clear_smi_sci_status(); if (smi_src & SMI_STATUS_SRC_0) process_smi_sources(SMI_REG_SMISTS0); if (smi_src & SMI_STATUS_SRC_1) diff --git a/src/soc/amd/stoneyridge/smihandler.c b/src/soc/amd/stoneyridge/smihandler.c index e90bdb1b8c..ffcbaea72b 100644 --- a/src/soc/amd/stoneyridge/smihandler.c +++ b/src/soc/amd/stoneyridge/smihandler.c @@ -217,14 +217,6 @@ static const struct smi_sources_t smi_sources[] = { { .type = SMITYPE_SLP_TYP, .handler = sb_slp_typ_handler}, }; -static void process_smi_sci(void) -{ - const uint32_t status = smi_read32(SMI_SCI_STATUS); - - /* Clear events to prevent re-entering SMI if event isn't handled */ - smi_write32(SMI_SCI_STATUS, status); -} - static void *get_source_handler(int source) { int i; @@ -265,7 +257,8 @@ void southbridge_smi_handler(void) const uint16_t smi_src = smi_read16(SMI_REG_POINTER); if (smi_src & SMI_STATUS_SRC_SCI) - process_smi_sci(); + /* Clear events to prevent re-entering SMI if event isn't handled */ + clear_smi_sci_status(); if (smi_src & SMI_STATUS_SRC_0) process_smi_sources(SMI_REG_SMISTS0); if (smi_src & SMI_STATUS_SRC_1) |