[PATCH 4/8] efi: move x86 clocksource init at core initcall level
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Mon Feb 27 02:19:26 PST 2017
so we can use device/driver model
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
common/efi/efi.c | 1 -
drivers/clocksource/efi.c | 5 ++++-
include/efi/efi.h | 2 --
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/common/efi/efi.c b/common/efi/efi.c
index 1c7aee872..4b589b600 100644
--- a/common/efi/efi.c
+++ b/common/efi/efi.c
@@ -348,7 +348,6 @@ efi_status_t efi_main(efi_handle_t image, efi_system_table_t *sys_table)
efi_strerror(efiret));
mem_malloc_init((void *)mem, (void *)mem + memsize);
- efi_clocksource_init();
start_barebox();
return EFI_SUCCESS;
diff --git a/drivers/clocksource/efi.c b/drivers/clocksource/efi.c
index 59fd9918a..6d2fee8eb 100644
--- a/drivers/clocksource/efi.c
+++ b/drivers/clocksource/efi.c
@@ -1,4 +1,5 @@
#include <common.h>
+#include <init.h>
#include <efi.h>
#include <efi/efi.h>
#include <clock.h>
@@ -48,7 +49,7 @@ static struct clocksource cs = {
.shift = 0,
};
-int efi_clocksource_init(void)
+static int efi_clocksource_init(void)
{
cs.mult = clocksource_hz2mult(1000 * 1000, cs.shift);
@@ -56,3 +57,5 @@ int efi_clocksource_init(void)
return init_clock(&cs);
}
+/* for efi the time must be init at core initcall level */
+core_initcall(efi_clocksource_init);
diff --git a/include/efi/efi.h b/include/efi/efi.h
index 2b25cf186..648afb9ec 100644
--- a/include/efi/efi.h
+++ b/include/efi/efi.h
@@ -12,8 +12,6 @@ extern efi_loaded_image_t *efi_loaded_image;
int efi_errno(efi_status_t err);
-int efi_clocksource_init(void);
-
void *efi_get_variable(char *name, efi_guid_t *vendor, int *var_size);
static inline void *efi_get_global_var(char *name, int *var_size)
--
2.11.0
More information about the barebox
mailing list