This is a first batch of a number of cleanups to the handling of IRQs
in spapr. It includes some cleanups to both the XICS and XIVE
interrupt controller backends, as well as more to the common spapr irq
handling infrastructure.
These are first steps towards even more cleanups that should make the
"dual" irq model less confusing.
David Gibson (20):
xics: Use incomplete type for XICSFabric
xics: Eliminate 'reject', 'resend' and 'eoi' class hooks
xics: Rename misleading ics_simple_*() functions
xics: Eliminate reset hook
xics: Merge TYPE_ICS_BASE and TYPE_ICS_SIMPLE classes
xics: Create sPAPR specific ICS subtype
spapr: Fold spapr_phb_lsi_qirq() into its single caller
spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse()
helper
spapr: Clarify and fix handling of nr_irqs
spapr: Eliminate nr_irqs parameter to SpaprIrq::init
spapr: Fix indexing of XICS irqs
spapr: Simplify spapr_qirq() handling
spapr: Eliminate SpaprIrq:get_nodename method
spapr: Remove unhelpful tracepoints from spapr_irq_free_xics()
spapr: Handle freeing of multiple irqs in frontend only
spapr, xics, xive: Better use of assert()s on irq claim/free paths
spapr: Remove unused return value in claim path
xive: Improve irq claim/free path
spapr: Use less cryptic representation of which irq backends are
supported
spapr: Eliminate SpaprIrq::init hook
hw/char/spapr_vty.c | 3 +-
hw/intc/spapr_xive.c | 23 ++-
hw/intc/trace-events | 10 +-
hw/intc/xics.c | 210 ++++++++--------------
hw/intc/xics_spapr.c | 46 ++++-
hw/net/spapr_llan.c | 3 +-
hw/ppc/pnv_psi.c | 6 +-
hw/ppc/spapr.c | 15 +-
hw/ppc/spapr_hcall.c | 6 +-
hw/ppc/spapr_irq.c | 342 ++++++++++++++----------------------
hw/ppc/spapr_pci.c | 3 +-
hw/ppc/spapr_vio.c | 3 +-
hw/ppc/trace-events | 4 -
include/hw/pci-host/spapr.h | 7 -
include/hw/ppc/spapr_irq.h | 31 ++--
include/hw/ppc/spapr_vio.h | 5 +-
include/hw/ppc/spapr_xive.h | 5 +-
include/hw/ppc/xics.h | 31 ++--
include/hw/ppc/xics_spapr.h | 5 +-
19 files changed, 320 insertions(+), 438 deletions(-)
--
2.21.0