diff options
author | Anup Patel <anup.patel@wdc.com> | 2018-12-26 16:14:54 +0300 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2018-12-27 07:05:09 +0300 |
commit | 52ed1d17092bbe93a34802a55ff19cc7cbb7f85d (patch) | |
tree | d367bfc48a0c787fabd6bd830b9ed68513afaebd /include/sbi | |
parent | c1b6200653c51642e544c66fab8bb320969b818e (diff) | |
download | opensbi-52ed1d17092bbe93a34802a55ff19cc7cbb7f85d.tar.xz |
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 <anup.patel@wdc.com>
Diffstat (limited to 'include/sbi')
-rw-r--r-- | include/sbi/sbi_platform.h | 18 | ||||
-rw-r--r-- | include/sbi/sbi_timer.h | 5 |
2 files changed, 7 insertions, 16 deletions
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 |