[PATCH 4/4] lib: utils: Improve fdt_timer
Xiang W
wxjstz at 126.com
Tue May 9 07:47:35 PDT 2023
Remove dummy driver. Optimize fdt_timer_cold_init to exit the
loop early.
Signed-off-by: Xiang W <wxjstz at 126.com>
---
lib/utils/timer/fdt_timer.c | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/lib/utils/timer/fdt_timer.c b/lib/utils/timer/fdt_timer.c
index 4695c0f..02cfa35 100644
--- a/lib/utils/timer/fdt_timer.c
+++ b/lib/utils/timer/fdt_timer.c
@@ -16,24 +16,17 @@
extern struct fdt_timer *fdt_timer_drivers[];
extern unsigned long fdt_timer_drivers_size;
-static struct fdt_timer dummy = {
- .match_table = NULL,
- .cold_init = NULL,
- .warm_init = NULL,
- .exit = NULL,
-};
-
-static struct fdt_timer *current_driver = &dummy;
+static struct fdt_timer *current_driver = NULL;
void fdt_timer_exit(void)
{
- if (current_driver->exit)
+ if (current_driver && current_driver->exit)
current_driver->exit();
}
static int fdt_timer_warm_init(void)
{
- if (current_driver->warm_init)
+ if (current_driver && current_driver->warm_init)
return current_driver->warm_init();
return 0;
}
@@ -59,13 +52,11 @@ static int fdt_timer_cold_init(void)
return rc;
}
current_driver = drv;
+ return 0;
}
-
- if (current_driver != &dummy)
- break;
}
- return 0;
+ return SBI_ENODEV;
}
int fdt_timer_init(bool cold_boot)
--
2.39.2
More information about the opensbi
mailing list