mbox series

[00/20] spapr: IRQ subsystem cleanups

Message ID 20190925064534.19155-1-david@gibson.dropbear.id.au (mailing list archive)
Headers show
Series spapr: IRQ subsystem cleanups | expand

Message

David Gibson Sept. 25, 2019, 6:45 a.m. UTC
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(-)