summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sbi/sbi_timer.c10
-rw-r--r--lib/utils/timer/fdt_timer.c31
-rw-r--r--lib/utils/timer/fdt_timer_mtimer.c2
-rw-r--r--lib/utils/timer/fdt_timer_plmt.c2
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,
};