From d74d6b444c9f1596c24d492e57af9423efbd113b Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Fri, 11 Mar 2016 22:06:46 -0700 Subject: dm: timer: Correct timer init ordering after relocation Commit 1057e6c broke use of the timer with driver model. If the timer is used before relocation, then it becomes broken after relocation. This prevents some x86 boards from booting. Fix it. Fixes: 1057e6c (timer: Set up the real timer after driver model is available) Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- common/board_r.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common/board_r.c b/common/board_r.c index 2cb6836435..ad02549311 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -322,11 +322,13 @@ static int initr_dm(void) /* Save the pre-reloc driver model and start a new one */ gd->dm_root_f = gd->dm_root; gd->dm_root = NULL; +#ifdef CONFIG_TIMER + gd->timer = NULL; +#endif ret = dm_init_and_scan(false); if (ret) return ret; #ifdef CONFIG_TIMER_EARLY - gd->timer = NULL; ret = dm_timer_init(); if (ret) return ret; -- cgit v1.2.1