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>
This commit is contained in:
Yidi Lin 2025-01-14 12:52:31 +08:00
commit cb4c52d620
6 changed files with 31 additions and 26 deletions

View file

@ -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 @@ u32 mt6315_buck_get_voltage(u32 slvid, u32 buck_id)
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");

View file

@ -171,10 +171,11 @@ static void mt6316_set_all_test_con9(void)
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");

View file

@ -331,11 +331,11 @@ void mt6359p_enable_vm18(bool enable)
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");

View file

@ -261,10 +261,11 @@ void mt6363_enable_vram_mdfe(bool enable)
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");

View file

@ -241,10 +241,11 @@ static void mt6373_pmic_wdt_set(void)
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__);

View file

@ -80,10 +80,11 @@ static void mt6685_unlock(bool unlock)
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");