[PATCH 2/2] common: board_f: Fix CONFIG_TIMER_EARLY issue (EAGAIN)

Johannes Krottmayer krjdev at gmail.com
Fri Mar 11 18:11:51 CET 2022


When CONFIG_TIMER_EARLY is selected and the timer driver implements
timer_early_get_count() and timer_early_get_rate() this leads to
an EAGAIN error one some configurations in...

common/board_f.c:initf_dm()

initf_dm() invokes dm_timer_init(), but this function returns with
an EAGAIN error in, because the DM virtual root driver isn't
initialized yet in...

drivers/timer/timer-class.c:dm_timer_init()

[WORKAROUND]

Move error handling to (next patch in this serie)...

lib/time.c

Signed-off-by: Johannes Krottmayer <krjdev at gmail.com>
Cc: Wolfgang Denk <wd at denx.de>
Cc: Thomas Chou <thomas at wytron.com.tw>
Cc: Rick Chen <rick at andestech.com>
Cc: Leo <ycliang at andestech.com>
Cc: Bin Meng <bmeng.cn at gmail.com>
Cc: Sean Anderson <seanga2 at gmail.com>
Cc: Anup Patel <anup at brainfault.org>
Cc: Thomas Chou <thomas at wytron.com.tw>
---
 common/board_f.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/common/board_f.c b/common/board_f.c
index a68760092a..fc883c1742 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -785,12 +785,6 @@ static int initf_dm(void)
 	bootstage_accum(BOOTSTAGE_ID_ACCUM_DM_F);
 	if (ret)
 		return ret;
-
-	if (IS_ENABLED(CONFIG_TIMER_EARLY)) {
-		ret = dm_timer_init();
-		if (ret)
-			return ret;
-	}
 #endif
 
 	return 0;
-- 
2.34.1



More information about the U-Boot mailing list