Yidi Lin has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/85967?usp=email )
Change subject: soc/mediatek: Mitigatation for the second call to mtXXXX_init_pmif_arb ......................................................................
soc/mediatek: Mitigatation for the second call to mtXXXX_init_pmif_arb
Return to the caller immediately if pmif_arb has been initiailized. In this way, we can skip unnecessary check and reduce the access to the PMIF register.
TEST=emerge-geralt coreboot && emerge-rauru coreboot
Change-Id: Id1d11f8b238855edb393d77151159792e7716d22 Signed-off-by: Yidi Lin yidilin@chromium.org --- M src/soc/mediatek/common/mt6315.c M src/soc/mediatek/common/mt6316.c M src/soc/mediatek/common/mt6359p.c M src/soc/mediatek/common/mt6363.c M src/soc/mediatek/common/mt6373.c M src/soc/mediatek/common/mt6685.c 6 files changed, 18 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/67/85967/1
diff --git a/src/soc/mediatek/common/mt6315.c b/src/soc/mediatek/common/mt6315.c index aebbd4c..266fb08 100644 --- a/src/soc/mediatek/common/mt6315.c +++ b/src/soc/mediatek/common/mt6315.c @@ -84,6 +84,9 @@
static void init_pmif_arb(void) { + if (pmif_arb) + return; + if (!pmif_arb) { pmif_arb = get_pmif_controller(PMIF_SPMI, 0); if (!pmif_arb) diff --git a/src/soc/mediatek/common/mt6316.c b/src/soc/mediatek/common/mt6316.c index 797ae3e..5285294 100644 --- a/src/soc/mediatek/common/mt6316.c +++ b/src/soc/mediatek/common/mt6316.c @@ -171,6 +171,9 @@
static void init_pmif_arb(void) { + if (pmif_arb) + return; + if (!pmif_arb) { pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_0); assert(pmif_arb); diff --git a/src/soc/mediatek/common/mt6359p.c b/src/soc/mediatek/common/mt6359p.c index e766479..6a96fd3 100644 --- a/src/soc/mediatek/common/mt6359p.c +++ b/src/soc/mediatek/common/mt6359p.c @@ -331,6 +331,9 @@
void mt6359p_init_pmif_arb(void) { + if (pmif_arb) + return; + if (!pmif_arb) { pmif_arb = get_pmif_controller(PMIF_SPI, 0); if (!pmif_arb) diff --git a/src/soc/mediatek/common/mt6363.c b/src/soc/mediatek/common/mt6363.c index a618b6f..608c855 100644 --- a/src/soc/mediatek/common/mt6363.c +++ b/src/soc/mediatek/common/mt6363.c @@ -261,6 +261,9 @@
void mt6363_init_pmif_arb(void) { + if (pmif_arb) + return; + if (!pmif_arb) { pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); assert(pmif_arb); diff --git a/src/soc/mediatek/common/mt6373.c b/src/soc/mediatek/common/mt6373.c index 1d5e1e2..94c7124 100644 --- a/src/soc/mediatek/common/mt6373.c +++ b/src/soc/mediatek/common/mt6373.c @@ -241,6 +241,9 @@
void mt6373_init_pmif_arb(void) { + if (pmif_arb) + return; + if (!pmif_arb) { pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); assert(pmif_arb); diff --git a/src/soc/mediatek/common/mt6685.c b/src/soc/mediatek/common/mt6685.c index fa434f4..abe8c33 100644 --- a/src/soc/mediatek/common/mt6685.c +++ b/src/soc/mediatek/common/mt6685.c @@ -80,6 +80,9 @@
void mt6685_init_pmif_arb(void) { + if (pmif_arb) + return; + if (!pmif_arb) { pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); assert(pmif_arb);