This patch introduces EVT_DM_POST_INIT_R event type for handling hooks
after relocation.

Fixes: 55171aedda88 ("dm: Emit the arch_cpu_init_dm() even only before 
relocation")
Suggested-by: Simon Glass <s...@chromium.org>
Cc: Bin Meng <bmeng...@gmail.com>
Signed-off-by: Chanho Park <chanho61.p...@samsung.com>
---
 drivers/core/root.c | 6 ++++--
 include/event.h     | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/core/root.c b/drivers/core/root.c
index 6775fb0b6575..79d871ab291a 100644
--- a/drivers/core/root.c
+++ b/drivers/core/root.c
@@ -436,8 +436,10 @@ int dm_init_and_scan(bool pre_reloc_only)
                        return ret;
                }
        }
-       if (CONFIG_IS_ENABLED(DM_EVENT) && !(gd->flags & GD_FLG_RELOC)) {
-               ret = event_notify_null(EVT_DM_POST_INIT_F);
+       if (CONFIG_IS_ENABLED(DM_EVENT)) {
+               ret = event_notify_null(gd->flags & GD_FLG_RELOC ?
+                                       EVT_DM_POST_INIT_R :
+                                       EVT_DM_POST_INIT_F);
                if (ret)
                        return log_msg_ret("ev", ret);
        }
diff --git a/include/event.h b/include/event.h
index daf44bf8a83b..bb38ba98e73b 100644
--- a/include/event.h
+++ b/include/event.h
@@ -24,6 +24,7 @@ enum event_t {
 
        /* Events related to driver model */
        EVT_DM_POST_INIT_F,
+       EVT_DM_POST_INIT_R,
        EVT_DM_PRE_PROBE,
        EVT_DM_POST_PROBE,
        EVT_DM_PRE_REMOVE,
-- 
2.39.2

Reply via email to