[Skiboot] [PATCH v3 02/17] xive/p9: minor cleanup of the interface
Cédric Le Goater
clg at kaod.org
Tue Oct 1 16:59:47 AEST 2019
The XIVE driver exposes an API to the core OPAL layer and to other
OPAL drivers. This is a minor cleanup preparing ground for future XIVE
logic.
Signed-off-by: Cédric Le Goater <clg at kaod.org>
---
include/interrupts.h | 1 -
include/skiboot.h | 1 -
include/xive.h | 7 ++++---
core/fast-reboot.c | 2 +-
hw/slw.c | 1 +
hw/xive.c | 4 ++--
6 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/interrupts.h b/include/interrupts.h
index d1ee5c4c112b..dfd48f2f2d59 100644
--- a/include/interrupts.h
+++ b/include/interrupts.h
@@ -184,7 +184,6 @@ extern uint32_t get_ics_phandle(void);
struct cpu_thread;
extern void reset_cpu_icp(void);
-extern void reset_cpu_xive(void);
extern void icp_send_eoi(uint32_t interrupt);
extern void icp_prep_for_pm(void);
extern void icp_kick_cpu(struct cpu_thread *cpu);
diff --git a/include/skiboot.h b/include/skiboot.h
index 96d25b83dac3..4258955484ae 100644
--- a/include/skiboot.h
+++ b/include/skiboot.h
@@ -298,7 +298,6 @@ enum wakeup_engine_states {
extern enum wakeup_engine_states wakeup_engine_state;
extern bool has_deep_states;
extern void nx_p9_rng_late_init(void);
-extern void xive_late_init(void);
diff --git a/include/xive.h b/include/xive.h
index e18fb9d783ae..224d65837f53 100644
--- a/include/xive.h
+++ b/include/xive.h
@@ -57,10 +57,11 @@ void xive_cpu_callin(struct cpu_thread *cpu);
*/
void *xive_get_trigger_port(uint32_t girq);
-/* To be used by special EOI override in PSI */
+/* To be used by PSI to prevent asserted LSI to constantly re-fire */
struct irq_source;
-void __xive_source_eoi(struct irq_source *is, uint32_t isn);
-
void xive_source_mask(struct irq_source *is, uint32_t isn);
+void xive_cpu_reset(void);
+void xive_late_init(void);
+
#endif /* XIVE_H */
diff --git a/core/fast-reboot.c b/core/fast-reboot.c
index 9631eb96d072..9611652d8c96 100644
--- a/core/fast-reboot.c
+++ b/core/fast-reboot.c
@@ -324,7 +324,7 @@ void __noreturn fast_reboot_entry(void)
prlog(PR_DEBUG, "RESET: CPU 0x%04x reset in\n", this_cpu()->pir);
if (proc_gen == proc_gen_p9) {
- reset_cpu_xive();
+ xive_cpu_reset();
} else if (proc_gen == proc_gen_p8) {
/* We reset our ICP first ! Otherwise we might get stray
* interrupts when unsplitting
diff --git a/hw/slw.c b/hw/slw.c
index ed8a5f9e6877..f1d0298b3fd1 100644
--- a/hw/slw.c
+++ b/hw/slw.c
@@ -22,6 +22,7 @@
#include <opal-api.h>
#include <nvram.h>
#include <sbe-p8.h>
+#include <xive.h>
#include <p9_stop_api.H>
#include <p8_pore_table_gen_api.H>
diff --git a/hw/xive.c b/hw/xive.c
index ec71932cc169..5369369b9895 100644
--- a/hw/xive.c
+++ b/hw/xive.c
@@ -2637,7 +2637,7 @@ static int64_t xive_source_set_xive(struct irq_source *is,
return __xive_set_irq_config(is, isn, server, prio, isn, true, true);
}
-void __xive_source_eoi(struct irq_source *is, uint32_t isn)
+static void __xive_source_eoi(struct irq_source *is, uint32_t isn)
{
struct xive_src *s = container_of(is, struct xive_src, is);
uint32_t idx = isn - s->esb_base;
@@ -4819,7 +4819,7 @@ static void xive_reset_mask_source_cb(struct irq_source *is,
}
}
-void reset_cpu_xive(void)
+void xive_cpu_reset(void)
{
struct cpu_thread *c = this_cpu();
struct xive_cpu_state *xs = c->xstate;
--
2.21.0
More information about the Skiboot
mailing list