Yidi Lin has submitted this change. ( https://review.coreboot.org/c/coreboot/+/85967?usp=email )
Change subject: soc/mediatek: Skip duplicate pmif_arb->is_pmif_init_done() call ......................................................................
soc/mediatek: Skip duplicate pmif_arb->is_pmif_init_done() call
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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/85967 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Yu-Ping Wu yupingso@google.com --- 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, 31 insertions(+), 26 deletions(-)
Approvals: Yu-Ping Wu: Looks good to me, approved build bot (Jenkins): Verified
diff --git a/src/soc/mediatek/common/mt6315.c b/src/soc/mediatek/common/mt6315.c index aebbd4c..7862c59 100644 --- a/src/soc/mediatek/common/mt6315.c +++ b/src/soc/mediatek/common/mt6315.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */
+#include <assert.h> #include <console/console.h> #include <delay.h> #include <soc/mt6315.h> @@ -84,11 +85,11 @@
static void init_pmif_arb(void) { - if (!pmif_arb) { - pmif_arb = get_pmif_controller(PMIF_SPMI, 0); - if (!pmif_arb) - die("ERROR: No spmi device"); - } + if (pmif_arb) + return; + + pmif_arb = get_pmif_controller(PMIF_SPMI, 0); + assert(pmif_arb);
if (pmif_arb->is_pmif_init_done(pmif_arb)) die("ERROR - Failed to initialize pmif spmi"); diff --git a/src/soc/mediatek/common/mt6316.c b/src/soc/mediatek/common/mt6316.c index 797ae3e..b7242fd 100644 --- a/src/soc/mediatek/common/mt6316.c +++ b/src/soc/mediatek/common/mt6316.c @@ -171,10 +171,11 @@
static void init_pmif_arb(void) { - if (!pmif_arb) { - pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_0); - assert(pmif_arb); - } + if (pmif_arb) + return; + + pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_0); + assert(pmif_arb);
if (pmif_arb->is_pmif_init_done(pmif_arb)) die("ERROR - Failed to initialize pmif spmi"); diff --git a/src/soc/mediatek/common/mt6359p.c b/src/soc/mediatek/common/mt6359p.c index e766479..fc7c677 100644 --- a/src/soc/mediatek/common/mt6359p.c +++ b/src/soc/mediatek/common/mt6359p.c @@ -331,11 +331,11 @@
void mt6359p_init_pmif_arb(void) { - if (!pmif_arb) { - pmif_arb = get_pmif_controller(PMIF_SPI, 0); - if (!pmif_arb) - die("ERROR: No spi device"); - } + if (pmif_arb) + return; + + pmif_arb = get_pmif_controller(PMIF_SPI, 0); + assert(pmif_arb);
if (pmif_arb->is_pmif_init_done(pmif_arb)) die("ERROR - Failed to initialize pmif spi"); diff --git a/src/soc/mediatek/common/mt6363.c b/src/soc/mediatek/common/mt6363.c index a618b6f..ba96163 100644 --- a/src/soc/mediatek/common/mt6363.c +++ b/src/soc/mediatek/common/mt6363.c @@ -261,10 +261,11 @@
void mt6363_init_pmif_arb(void) { - if (!pmif_arb) { - pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); - assert(pmif_arb); - } + if (pmif_arb) + return; + + pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); + assert(pmif_arb);
if (pmif_arb->is_pmif_init_done(pmif_arb)) die("ERROR - Failed to initialize pmif spi"); diff --git a/src/soc/mediatek/common/mt6373.c b/src/soc/mediatek/common/mt6373.c index 1d5e1e2..8dca0a0 100644 --- a/src/soc/mediatek/common/mt6373.c +++ b/src/soc/mediatek/common/mt6373.c @@ -241,10 +241,11 @@
void mt6373_init_pmif_arb(void) { - if (!pmif_arb) { - pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); - assert(pmif_arb); - } + if (pmif_arb) + return; + + pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); + assert(pmif_arb);
if (pmif_arb->is_pmif_init_done(pmif_arb)) die("%s: initialization failed", __func__); diff --git a/src/soc/mediatek/common/mt6685.c b/src/soc/mediatek/common/mt6685.c index fa434f4..81ee6c6 100644 --- a/src/soc/mediatek/common/mt6685.c +++ b/src/soc/mediatek/common/mt6685.c @@ -80,10 +80,11 @@
void mt6685_init_pmif_arb(void) { - if (!pmif_arb) { - pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); - assert(pmif_arb); - } + if (pmif_arb) + return; + + pmif_arb = get_pmif_controller(PMIF_SPMI, SPMI_MASTER_1); + assert(pmif_arb);
if (pmif_arb->is_pmif_init_done(pmif_arb)) die("ERROR - Failed to initialize pmif spi");