diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sbi/sbi_timer.c | 10 | ||||
| -rw-r--r-- | lib/utils/timer/fdt_timer.c | 31 | ||||
| -rw-r--r-- | lib/utils/timer/fdt_timer_mtimer.c | 2 | ||||
| -rw-r--r-- | lib/utils/timer/fdt_timer_plmt.c | 2 |
4 files changed, 5 insertions, 40 deletions
diff --git a/lib/sbi/sbi_timer.c b/lib/sbi/sbi_timer.c index dee1ff19..86e0db5a 100644 --- a/lib/sbi/sbi_timer.c +++ b/lib/sbi/sbi_timer.c @@ -192,6 +192,10 @@ int sbi_timer_init(struct sbi_scratch *scratch, bool cold_boot) if (sbi_hart_has_extension(scratch, SBI_HART_EXT_ZICNTR)) get_time_val = get_ticks; + + ret = sbi_platform_timer_init(plat); + if (ret) + return ret; } else { if (!time_delta_off) return SBI_ENOMEM; @@ -200,10 +204,6 @@ int sbi_timer_init(struct sbi_scratch *scratch, bool cold_boot) time_delta = sbi_scratch_offset_ptr(scratch, time_delta_off); *time_delta = 0; - ret = sbi_platform_timer_init(plat, cold_boot); - if (ret) - return ret; - if (timer_dev && timer_dev->warm_init) { ret = timer_dev->warm_init(); if (ret) @@ -220,6 +220,4 @@ void sbi_timer_exit(struct sbi_scratch *scratch) csr_clear(CSR_MIP, MIP_STIP); csr_clear(CSR_MIE, MIP_MTIP); - - sbi_platform_timer_exit(sbi_platform_ptr(scratch)); } diff --git a/lib/utils/timer/fdt_timer.c b/lib/utils/timer/fdt_timer.c index aa0494e4..37965f5e 100644 --- a/lib/utils/timer/fdt_timer.c +++ b/lib/utils/timer/fdt_timer.c @@ -16,22 +16,7 @@ extern struct fdt_timer *fdt_timer_drivers[]; extern unsigned long fdt_timer_drivers_size; -static struct fdt_timer *current_driver = NULL; - -void fdt_timer_exit(void) -{ - if (current_driver && current_driver->exit) - current_driver->exit(); -} - -static int fdt_timer_warm_init(void) -{ - if (current_driver && current_driver->warm_init) - return current_driver->warm_init(); - return 0; -} - -static int fdt_timer_cold_init(void) +int fdt_timer_init(void) { int pos, noff, rc; struct fdt_timer *drv; @@ -56,7 +41,6 @@ static int fdt_timer_cold_init(void) continue; if (rc) return rc; - current_driver = drv; /* * We will have multiple timer devices on multi-die or @@ -71,16 +55,3 @@ static int fdt_timer_cold_init(void) */ return 0; } - -int fdt_timer_init(bool cold_boot) -{ - int rc; - - if (cold_boot) { - rc = fdt_timer_cold_init(); - if (rc) - return rc; - } - - return fdt_timer_warm_init(); -} diff --git a/lib/utils/timer/fdt_timer_mtimer.c b/lib/utils/timer/fdt_timer_mtimer.c index eff50417..e752ddc5 100644 --- a/lib/utils/timer/fdt_timer_mtimer.c +++ b/lib/utils/timer/fdt_timer_mtimer.c @@ -165,6 +165,4 @@ static const struct fdt_match timer_mtimer_match[] = { struct fdt_timer fdt_timer_mtimer = { .match_table = timer_mtimer_match, .cold_init = timer_mtimer_cold_init, - .warm_init = NULL, - .exit = NULL, }; diff --git a/lib/utils/timer/fdt_timer_plmt.c b/lib/utils/timer/fdt_timer_plmt.c index 87e634bd..459a1190 100644 --- a/lib/utils/timer/fdt_timer_plmt.c +++ b/lib/utils/timer/fdt_timer_plmt.c @@ -46,6 +46,4 @@ static const struct fdt_match timer_plmt_match[] = { struct fdt_timer fdt_timer_plmt = { .match_table = timer_plmt_match, .cold_init = fdt_plmt_cold_timer_init, - .warm_init = NULL, - .exit = NULL, }; |
