summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2021-02-10 01:32:00 +0100
committerMartin Roth <martinroth@google.com>2021-02-11 00:50:52 +0000
commita6fc2125e78eb7db537733ee7d33f59e723a27c1 (patch)
tree57369317929a71f6863572bfdd1a4d8094ede3fd
parent4f69ab729a9e0fe929728c5726e78f7769fe5a3a (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.h1
-rw-r--r--src/soc/amd/common/block/smi/smi_util.c5
-rw-r--r--src/soc/amd/picasso/smihandler.c11
-rw-r--r--src/soc/amd/stoneyridge/smihandler.c11
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)