diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-09-19 13:45:02 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-09-20 02:09:59 -0400 |
commit | 5c7c1e9444d8bfb721a27a35bba3eeb5236c75d8 (patch) | |
tree | b63c895e73bfb9b921a20acde8254c10656e99b4 /arch/powerpc/include/asm/xics.h | |
parent | 628daa8d5abfd904a7329a660c5c374212230123 (diff) |
powerpc/powernv: Add OPAL ICS backend
OPAL handles HW access to the various ICS or equivalent chips
for us (with the exception of p5ioc2 based HEA which uses a
different backend) similarily to what RTAS does on pSeries.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm/xics.h')
-rw-r--r-- | arch/powerpc/include/asm/xics.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/xics.h b/arch/powerpc/include/asm/xics.h index b183a4062011..bd6c401c0ee5 100644 --- a/arch/powerpc/include/asm/xics.h +++ b/arch/powerpc/include/asm/xics.h | |||
@@ -27,10 +27,18 @@ | |||
27 | #define MAX_NUM_PRIORITIES 3 | 27 | #define MAX_NUM_PRIORITIES 3 |
28 | 28 | ||
29 | /* Native ICP */ | 29 | /* Native ICP */ |
30 | #ifdef CONFIG_PPC_ICP_NATIVE | ||
30 | extern int icp_native_init(void); | 31 | extern int icp_native_init(void); |
32 | #else | ||
33 | static inline int icp_native_init(void) { return -ENODEV; } | ||
34 | #endif | ||
31 | 35 | ||
32 | /* PAPR ICP */ | 36 | /* PAPR ICP */ |
37 | #ifdef CONFIG_PPC_ICP_HV | ||
33 | extern int icp_hv_init(void); | 38 | extern int icp_hv_init(void); |
39 | #else | ||
40 | static inline int icp_hv_init(void) { return -ENODEV; } | ||
41 | #endif | ||
34 | 42 | ||
35 | /* ICP ops */ | 43 | /* ICP ops */ |
36 | struct icp_ops { | 44 | struct icp_ops { |
@@ -51,7 +59,18 @@ extern const struct icp_ops *icp_ops; | |||
51 | extern int ics_native_init(void); | 59 | extern int ics_native_init(void); |
52 | 60 | ||
53 | /* RTAS ICS */ | 61 | /* RTAS ICS */ |
62 | #ifdef CONFIG_PPC_ICS_RTAS | ||
54 | extern int ics_rtas_init(void); | 63 | extern int ics_rtas_init(void); |
64 | #else | ||
65 | static inline int ics_rtas_init(void) { return -ENODEV; } | ||
66 | #endif | ||
67 | |||
68 | /* HAL ICS */ | ||
69 | #ifdef CONFIG_PPC_POWERNV | ||
70 | extern int ics_opal_init(void); | ||
71 | #else | ||
72 | static inline int ics_opal_init(void) { return -ENODEV; } | ||
73 | #endif | ||
55 | 74 | ||
56 | /* ICS instance, hooked up to chip_data of an irq */ | 75 | /* ICS instance, hooked up to chip_data of an irq */ |
57 | struct ics { | 76 | struct ics { |