aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChanho Park2023-08-18 14:11:02 +0900
committerSimon Glass2023-08-22 08:07:43 -0600
commit27c7a62986b3dd6d44351271d2c0cf59664ce759 (patch)
treee172ec71a7514a206542607ac4fb5ada8d012db7
parent976fb2ffa3875a7bed9866bf5cf939a81c423ef8 (diff)
dm: event: add EVT_DM_POST_INIT_R event type
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 <sjg@chromium.org> Cc: Bin Meng <bmeng.cn@gmail.com> Signed-off-by: Chanho Park <chanho61.park@samsung.com> Tested-by: Milan P. Stanić <mps@arvanta.net> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Roland Ruckerbauer <mail@ruabmbua.dev> Tested-by: Roland Ruckerbauer <mail@ruabmbua.dev> Fixed missing event name in event.c: Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--common/event.c1
-rw-r--r--drivers/core/root.c6
-rw-r--r--include/event.h1
3 files changed, 6 insertions, 2 deletions
diff --git a/common/event.c b/common/event.c
index 3224e281222..6653300e6cf 100644
--- a/common/event.c
+++ b/common/event.c
@@ -28,6 +28,7 @@ const char *const type_name[] = {
/* Events related to driver model */
"dm_post_init_f",
+ "dm_post_init_r",
"dm_pre_probe",
"dm_post_probe",
"dm_pre_remove",
diff --git a/drivers/core/root.c b/drivers/core/root.c
index 6775fb0b657..79d871ab291 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 daf44bf8a83..bb38ba98e73 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,