linux/arch/arm
Linus Torvalds 9e66645d72 Merge branch 'irq-irqdomain-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq domain updates from Thomas Gleixner:
 "The real interesting irq updates:

   - Support for hierarchical irq domains:

     For complex interrupt routing scenarios where more than one
     interrupt related chip is involved we had no proper representation
     in the generic interrupt infrastructure so far.  That made people
     implement rather ugly constructs in their nested irq chip
     implementations.  The main offenders are x86 and arm/gic.

     To distangle that mess we have now hierarchical irqdomains which
     seperate the various interrupt chips and connect them via the
     hierarchical domains.  That keeps the domain specific details
     internal to the particular hierarchy level and removes the
     criss/cross referencing of chip internals.  The resulting hierarchy
     for a complex x86 system will look like this:

        vector          mapped: 74
          msi-0         mapped: 2
          dmar-ir-1     mapped: 69
            ioapic-1    mapped: 4
            ioapic-0    mapped: 20
            pci-msi-2   mapped: 45
          dmar-ir-0     mapped: 3
            ioapic-2    mapped: 1
            pci-msi-1   mapped: 2
          htirq         mapped: 0

     Neither ioapic nor pci-msi know about the dmar interrupt remapping
     between themself and the vector domain.  If interrupt remapping is
     disabled ioapic and pci-msi become direct childs of the vector
     domain.

     In hindsight we should have done that years ago, but in hindsight
     we always know better :)

   - Support for generic MSI interrupt domain handling

     We have more and more non PCI related MSI interrupts, so providing
     a generic infrastructure for this is better than having all
     affected architectures implementing their own private hacks.

   - Support for PCI-MSI interrupt domain handling, based on the generic
     MSI support.

     This part carries the pci/msi branch from Bjorn Helgaas pci tree to
     avoid a massive conflict.  The PCI/MSI parts are acked by Bjorn.

  I have two more branches on top of this.  The full conversion of x86
  to hierarchical domains and a partial conversion of arm/gic"

* 'irq-irqdomain-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
  genirq: Move irq_chip_write_msi_msg() helper to core
  PCI/MSI: Allow an msi_controller to be associated to an irq domain
  PCI/MSI: Provide mechanism to alloc/free MSI/MSIX interrupt from irqdomain
  PCI/MSI: Enhance core to support hierarchy irqdomain
  PCI/MSI: Move cached entry functions to irq core
  genirq: Provide default callbacks for msi_domain_ops
  genirq: Introduce msi_domain_alloc/free_irqs()
  asm-generic: Add msi.h
  genirq: Add generic msi irq domain support
  genirq: Introduce callback irq_chip.irq_write_msi_msg
  genirq: Work around __irq_set_handler vs stacked domains ordering issues
  irqdomain: Introduce helper function irq_domain_add_hierarchy()
  irqdomain: Implement a method to automatically call parent domains alloc/free
  genirq: Introduce helper irq_domain_set_info() to reduce duplicated code
  genirq: Split out flow handler typedefs into seperate header file
  genirq: Add IRQ_SET_MASK_OK_DONE to support stacked irqchip
  genirq: Introduce irq_chip.irq_compose_msi_msg() to support stacked irqchip
  genirq: Add more helper functions to support stacked irq_chip
  genirq: Introduce helper functions to support stacked irq_chip
  irqdomain: Do irq_find_mapping and set_type for hierarchy irqdomain in case OF
  ...
2014-12-10 09:01:01 -08:00
..
boot ARM: SoC DT updates for 3.19 2014-12-09 14:57:37 -08:00
common ARM: SoC driver updates for 3.19 2014-12-09 14:48:22 -08:00
configs ARM: SoC defconfig changes for 3.19 2014-12-09 17:04:13 -08:00
crypto
firmware
include Merge branch 'irq-irqdomain-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-12-10 09:01:01 -08:00
kernel Merge branch 'irq-irqdomain-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-12-10 09:01:01 -08:00
kvm arm/arm64: kvm: drop inappropriate use of kvm_is_mmio_pfn() 2014-11-26 14:40:45 +01:00
lib
mach-asm9260 ARM: add mach-asm9260 2014-11-28 15:06:38 +01:00
mach-at91 ARM: SoC cleanups for 3.19 2014-12-09 14:18:35 -08:00
mach-axxia
mach-bcm Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-12-10 08:38:57 -08:00
mach-berlin ARM: berlin: do not select RESET_CONTROLLER 2014-11-18 20:27:53 +01:00
mach-clps711x
mach-cns3xxx
mach-davinci ARM: davinci: Remove redundant casts 2014-11-18 21:11:13 +05:30
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx arm: ep93xx: add dma_masks for the M2P and M2M DMA controllers 2014-11-28 12:34:08 +01:00
mach-exynos ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
mach-integrator soc: move SoC driver for the ARM Integrator 2014-11-13 10:32:05 +01:00
mach-iop13xx PCI/MSI: Rename mask/unmask_msi_irq treewide 2014-11-23 13:01:45 +01:00
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone
mach-ks8695
mach-lpc32xx
mach-mediatek ARM: SoC DT updates for 3.19 2014-12-09 14:57:37 -08:00
mach-meson ARM: meson: enable L2 cache 2014-11-18 16:35:01 +01:00
mach-mmp
mach-moxart
mach-msm
mach-mv78xx0
mach-mvebu ARM: mvebu: use the cpufreq-dt platform_data for independent clocks 2014-12-04 17:31:32 +01:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1
mach-omap2 ARM: SoC/OMAP GPMC driver cleanup and move for 3.19 2014-12-09 16:57:56 -08:00
mach-orion5x
mach-picoxcell
mach-prima2
mach-pxa ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
mach-qcom
mach-realview
mach-rockchip
mach-rpc
mach-s3c24xx
mach-s3c64xx
mach-s5pv210
mach-sa1100 asm-generic: asm/io.h rewrite 2014-12-09 17:25:00 -08:00
mach-shmobile ARM: SoC DT updates for 3.19 2014-12-09 14:57:37 -08:00
mach-socfpga socfpga: hotplug: put cpu1 in wfi 2014-11-20 17:00:32 +01:00
mach-spear
mach-sti
mach-sunxi ARM: sunxi: make sun6i SMP ops static 2014-11-16 11:02:33 +01:00
mach-tegra ARM: SoC driver updates for 3.19 2014-12-09 14:48:22 -08:00
mach-u300
mach-ux500
mach-versatile
mach-vexpress ARM: vexpress: Enable regulator framework when MMCI is in use 2014-11-28 21:57:07 +01:00
mach-vt8500
mach-w90x900
mach-zynq ARM: zynq: Remove secondary_startup() declaration from header 2014-12-01 09:32:22 +01:00
mm ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
net
nwfpe
oprofile
plat-iop
plat-omap
plat-orion ARM: orion: convert the irq_reg_{readl,writel} calls to the new API 2014-11-26 01:59:54 +00:00
plat-pxa
plat-samsung ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
plat-versatile ARM: vexpress: Remove non-DT code 2014-11-28 16:08:16 +01:00
tools
vfp
xen
Kconfig ARM: SoC driver updates for 3.19 2014-12-09 14:48:22 -08:00
Kconfig-nommu
Kconfig.debug ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
Makefile