[PATCH v2 00/19] Implement generic IPI support mechanism

From: Qais Yousef
Date: Wed Nov 25 2015 - 07:07:34 EST


This series adds support for a generic IPI mechanism that can be used by both
arch and drivers to send IPIs to other CPUs.

v2 introduces a big change over v1 and should have addressed all review comments.

List of changes:
- We now have 2 IPI flags to distinguish per cpu IPIs from single ones.
- IPI functions are in ipi.c
- Added offset to ipi_mask to cater for masks starting at non-zero.
- New API for sending IPIs.
- Added device hierarchy to mips-gic.
- Added a new patch to reserve mips-gic IPIs from DT.
- Dropped the Docs help for now till API stabilises.

It's hard to detail every change done but these are the headlines.
It would be good to look at all patches again. Hopefully I broke them down in
an away that is easy to review.

I hope this is close enough to how it should be done and I didn't stray off.

I tested this on Malta platform which effectively doesn't have DT support.
Unfortunately I don't have access to a platform with DT support that can run on
latest kernel. The recent changes in irq/core makes backporting the patches non
trivial.

Thanks in advance.

Qais

Qais Yousef (19):
genirq: Add new IRQ_DOMAIN_FLAGS_IPI
genirq: Add DOMAIN_BUS_IPI
genirq: Add GENERIC_IRQ_IPI Kconfig symbol
genirq: Add new struct ipi_mask and helper functions
genirq: Add struct ipi_mask to irq_data
genirq: Add struct ipi_mapping and its helper functions
genirq: Make irq_domain_alloc_descs() non static
genirq: Add a new generic IPI reservation code to irq core
genirq: Add a new function to get IPI reverse mapping
genirq: Add a new irq_send_ipi() to irq_chip
genirq: Implement ipi_send_{mask, single}()
irqchip/mips-gic: Add a IPI hierarchy domain
irqchip/mips-gic: Add device hierarchy domain
irqchip/mips-gic: Use gic_vpes instead of NR_CPUS
irqchip/mips-gic: Clear percpu_masks correctly when mapping
MIPS: Add generic SMP IPI support
MIPS: Make smp CMP, CPS and MT use the new generic IPI functions
MIPS: Delete smp-gic.c
irqchip/mips-gic: Add new DT property to reserve IPIs

.../bindings/interrupt-controller/mips-gic.txt | 7 +
arch/mips/Kconfig | 6 -
arch/mips/include/asm/smp-ops.h | 5 +-
arch/mips/kernel/Makefile | 1 -
arch/mips/kernel/smp-cmp.c | 4 +-
arch/mips/kernel/smp-cps.c | 4 +-
arch/mips/kernel/smp-gic.c | 64 ---
arch/mips/kernel/smp-mt.c | 2 +-
arch/mips/kernel/smp.c | 139 ++++++
drivers/irqchip/Kconfig | 2 +
drivers/irqchip/irq-mips-gic.c | 354 +++++++++++----
include/linux/irq.h | 152 +++++++
include/linux/irqchip/mips-gic.h | 3 -
include/linux/irqdomain.h | 46 ++
kernel/irq/Kconfig | 4 +
kernel/irq/Makefile | 1 +
kernel/irq/ipi.c | 478 +++++++++++++++++++++
kernel/irq/irqdomain.c | 6 +-
18 files changed, 1102 insertions(+), 176 deletions(-)
delete mode 100644 arch/mips/kernel/smp-gic.c
create mode 100644 kernel/irq/ipi.c

--
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/