diff options
author | Anup Patel <anup.patel@wdc.com> | 2018-12-26 16:06:11 +0300 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2018-12-27 07:05:09 +0300 |
commit | c1b6200653c51642e544c66fab8bb320969b818e (patch) | |
tree | c4d17e29e7a979cd5a910b4910fcd75a5569f803 /include | |
parent | e34aa8a6719dd6c225e576e0617d05735776af6f (diff) | |
download | opensbi-c1b6200653c51642e544c66fab8bb320969b818e.tar.xz |
lib: Simplify sbi_platform ipi_init() hooks
Instead of having separate ipi_init() hooks for cold and warm boot,
this patch updates struct sbi_platform to have just one ipi_init()
hook. The type of boot (cold or warm) is now a boolean flag parameter
for the updated ipi_init() hook.
Signed-off-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/sbi/sbi_ipi.h | 4 | ||||
-rw-r--r-- | include/sbi/sbi_platform.h | 18 |
2 files changed, 6 insertions, 16 deletions
diff --git a/include/sbi/sbi_ipi.h b/include/sbi/sbi_ipi.h index 4058194..d7c0576 100644 --- a/include/sbi/sbi_ipi.h +++ b/include/sbi/sbi_ipi.h @@ -26,8 +26,6 @@ void sbi_ipi_clear_smode(struct sbi_scratch *scratch, u32 hartid); void sbi_ipi_process(struct sbi_scratch *scratch, u32 hartid); -int sbi_ipi_warm_init(struct sbi_scratch *scratch, u32 hartid); - -int sbi_ipi_cold_init(struct sbi_scratch *scratch); +int sbi_ipi_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot); #endif diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index 503669b..13c9ffc 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -46,8 +46,7 @@ struct sbi_platform { void (*ipi_inject)(u32 target_hart, u32 source_hart); void (*ipi_sync)(u32 target_hart, u32 source_hart); void (*ipi_clear)(u32 target_hart); - int (*cold_ipi_init)(void); - int (*warm_ipi_init)(u32 target_hart); + int (*ipi_init)(u32 hartid, bool cold_boot); u64 (*timer_value)(void); void (*timer_event_stop)(u32 target_hart); void (*timer_event_start)(u32 target_hart, u64 next_event); @@ -187,18 +186,11 @@ static inline void sbi_platform_ipi_clear(struct sbi_platform *plat, plat->ipi_clear(target_hart); } -static inline int sbi_platform_warm_ipi_init(struct sbi_platform *plat, - u32 target_hart) +static inline int sbi_platform_ipi_init(struct sbi_platform *plat, + u32 hartid, bool cold_boot) { - if (plat && plat->warm_ipi_init) - return plat->warm_ipi_init(target_hart); - return 0; -} - -static inline int sbi_platform_cold_ipi_init(struct sbi_platform *plat) -{ - if (plat && plat->cold_ipi_init) - return plat->cold_ipi_init(); + if (plat && plat->ipi_init) + return plat->ipi_init(hartid, cold_boot); return 0; } |