1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _POWERNV_H 3 #define _POWERNV_H 4 5 /* 6 * There's various hacks scattered throughout the generic powerpc arch code 7 * that needs to call into powernv platform stuff. The prototypes for those 8 * functions are in asm/powernv.h 9 */ 10 #include <asm/powernv.h> 11 12 #ifdef CONFIG_SMP 13 extern void pnv_smp_init(void); 14 #else 15 static inline void pnv_smp_init(void) { } 16 #endif 17 18 extern void pnv_platform_error_reboot(struct pt_regs *regs, const char *msg) __noreturn; 19 20 struct pci_dev; 21 22 #ifdef CONFIG_PCI 23 extern void pnv_pci_init(void); 24 extern void pnv_pci_shutdown(void); 25 #else 26 static inline void pnv_pci_init(void) { } 27 static inline void pnv_pci_shutdown(void) { } 28 #endif 29 30 extern u32 pnv_get_supported_cpuidle_states(void); 31 32 extern void pnv_lpc_init(void); 33 34 extern void opal_handle_events(void); 35 extern bool opal_have_pending_events(void); 36 extern void opal_event_shutdown(void); 37 38 bool cpu_core_split_required(void); 39 40 struct memcons; 41 ssize_t memcons_copy(struct memcons *mc, char *to, loff_t pos, size_t count); 42 u32 __init memcons_get_size(struct memcons *mc); 43 struct memcons *__init memcons_init(struct device_node *node, const char *mc_prop_name); 44 45 void pnv_rng_init(void); 46 47 #endif /* _POWERNV_H */ 48