From 52ed1d17092bbe93a34802a55ff19cc7cbb7f85d Mon Sep 17 00:00:00 2001 From: Anup Patel Date: Wed, 26 Dec 2018 18:44:54 +0530 Subject: lib: Simplify sbi_platform timer_init() hooks Instead of having separate timer_init() hooks for cold and warm boot, this patch updates struct sbi_platform to have just one timer_init() hook. The type of boot (cold or warm) is now a boolean flag parameter for the updated timer_init() hook. Signed-off-by: Anup Patel --- include/sbi/sbi_platform.h | 18 +++++------------- include/sbi/sbi_timer.h | 5 ++--- 2 files changed, 7 insertions(+), 16 deletions(-) (limited to 'include') diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index 13c9ffc..29e6610 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -50,8 +50,7 @@ struct sbi_platform { u64 (*timer_value)(void); void (*timer_event_stop)(u32 target_hart); void (*timer_event_start)(u32 target_hart, u64 next_event); - int (*cold_timer_init)(void); - int (*warm_timer_init)(u32 target_hart); + int (*timer_init)(u32 hartid, bool cold_boot); int (*system_reboot)(u32 type); int (*system_shutdown)(u32 type); } __attribute__((packed)); @@ -216,18 +215,11 @@ static inline void sbi_platform_timer_event_start(struct sbi_platform *plat, plat->timer_event_start(target_hart, next_event); } -static inline int sbi_platform_warm_timer_init(struct sbi_platform *plat, - u32 target_hart) -{ - if (plat && plat->warm_timer_init) - return plat->warm_timer_init(target_hart); - return 0; -} - -static inline int sbi_platform_cold_timer_init(struct sbi_platform *plat) +static inline int sbi_platform_timer_init(struct sbi_platform *plat, + u32 hartid, bool cold_boot) { - if (plat && plat->cold_timer_init) - return plat->cold_timer_init(); + if (plat && plat->timer_init) + return plat->timer_init(hartid, cold_boot); return 0; } diff --git a/include/sbi/sbi_timer.h b/include/sbi/sbi_timer.h index 914e9c0..601c27c 100644 --- a/include/sbi/sbi_timer.h +++ b/include/sbi/sbi_timer.h @@ -23,8 +23,7 @@ void sbi_timer_event_start(struct sbi_scratch *scratch, u32 hartid, void sbi_timer_process(struct sbi_scratch *scratch, u32 hartid); -int sbi_timer_warm_init(struct sbi_scratch *scratch, u32 hartid); - -int sbi_timer_cold_init(struct sbi_scratch *scratch); +int sbi_timer_init(struct sbi_scratch *scratch, u32 hartid, + bool cold_boot); #endif -- cgit v1.1