soc/mediatek/early_init: Fix function return type

Fix return type of early_init_get_elapsed_time_us() to comply with the
data type of return value.

Also replace memset() with struct initializer.

Signed-off-by: Jianjun Wang <jianjun.wang@mediatek.com>
Fixes: commit 41faa22 (soc/mediatek: Add early_init for passing data
       across stages)
Change-Id: I7c361828362c2dfec91358ad8a420f5360243da0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63190
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Jianjun Wang 2022-03-30 09:09:43 +08:00 committed by Hung-Te Lin
parent e1e30b1504
commit 79b35ca481
3 changed files with 7 additions and 9 deletions

View File

@ -31,16 +31,14 @@ void early_init_save_time(enum early_init_type init_type)
timer_monotonic_get(&data->init_time[init_type]); timer_monotonic_get(&data->init_time[init_type]);
} }
uint64_t early_init_get_elapsed_time_us(enum early_init_type init_type) long early_init_get_elapsed_time_us(enum early_init_type init_type)
{ {
struct early_init_data *data = find_early_init(); struct early_init_data *data = find_early_init();
struct mono_time cur_time; struct mono_time cur_time = {0};
if (!data) if (!data)
return 0; return 0;
memset(&cur_time, 0, sizeof(cur_time));
/* If early init data was never saved */ /* If early init data was never saved */
if (!memcmp(&data->init_time[init_type], &cur_time, sizeof(cur_time))) if (!memcmp(&data->init_time[init_type], &cur_time, sizeof(cur_time)))
return 0; return 0;

View File

@ -21,6 +21,6 @@ struct early_init_data {
void early_init_clear(void); void early_init_clear(void);
void early_init_save_time(enum early_init_type init_type); void early_init_save_time(enum early_init_type init_type);
uint64_t early_init_get_elapsed_time_us(enum early_init_type init_type); long early_init_get_elapsed_time_us(enum early_init_type init_type);
#endif /* SOC_MEDIATEK_EARLY_INIT_H */ #endif /* SOC_MEDIATEK_EARLY_INIT_H */

View File

@ -215,7 +215,7 @@ void mtk_pcie_domain_enable(struct device *dev)
const mtk_soc_config_t *config = config_of(dev); const mtk_soc_config_t *config = config_of(dev);
const struct mtk_pcie_config *conf = &config->pcie_config; const struct mtk_pcie_config *conf = &config->pcie_config;
const char *ltssm_state; const char *ltssm_state;
uint64_t perst_time_us; long perst_time_us;
size_t tries = 0; size_t tries = 0;
uint32_t val; uint32_t val;
@ -236,7 +236,7 @@ void mtk_pcie_domain_enable(struct device *dev)
write32p(conf->base + PCIE_INT_ENABLE_REG, val); write32p(conf->base + PCIE_INT_ENABLE_REG, val);
perst_time_us = early_init_get_elapsed_time_us(EARLY_INIT_PCIE); perst_time_us = early_init_get_elapsed_time_us(EARLY_INIT_PCIE);
printk(BIOS_DEBUG, "%s: %lld us elapsed since assert PERST#\n", printk(BIOS_DEBUG, "%s: %ld us elapsed since assert PERST#\n",
__func__, perst_time_us); __func__, perst_time_us);
/* /*
@ -245,7 +245,7 @@ void mtk_pcie_domain_enable(struct device *dev)
* The deassertion of PERST# should be delayed 100ms (TPVPERL) * The deassertion of PERST# should be delayed 100ms (TPVPERL)
* for the power and clock to become stable. * for the power and clock to become stable.
*/ */
const uint64_t min_perst_time_us = 100000; /* 100 ms */ const long min_perst_time_us = 100000; /* 100 ms */
if (perst_time_us < min_perst_time_us) { if (perst_time_us < min_perst_time_us) {
if (!perst_time_us) { if (!perst_time_us) {
printk(BIOS_WARNING, printk(BIOS_WARNING,
@ -254,7 +254,7 @@ void mtk_pcie_domain_enable(struct device *dev)
mtk_pcie_reset(conf->base + PCIE_RST_CTRL_REG, true); mtk_pcie_reset(conf->base + PCIE_RST_CTRL_REG, true);
} else { } else {
printk(BIOS_WARNING, printk(BIOS_WARNING,
"%s: Need an extra %lld us delay to meet PERST# deassertion requirement\n", "%s: Need an extra %ld us delay to meet PERST# deassertion requirement\n",
__func__, min_perst_time_us - perst_time_us); __func__, min_perst_time_us - perst_time_us);
} }