Merge tag 'irq-core-2020-12-15' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 15 Dec 2020 23:03:31 +0000 (15:03 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 15 Dec 2020 23:03:31 +0000 (15:03 -0800)
Pull irq updates from Thomas Gleixner:
 "Generic interrupt and irqchips subsystem updates. Unusually, there is
  not a single completely new irq chip driver, just new DT bindings and
  extensions of existing drivers to accomodate new variants!

  Core:

   - Consolidation and robustness changes for irq time accounting

   - Cleanup and consolidation of irq stats

   - Remove the fasteoi IPI flow which has been proved useless

   - Provide an interface for converting legacy interrupt mechanism into
     irqdomains

  Drivers:

   - Preliminary support for managed interrupts on platform devices

   - Correctly identify allocation of MSIs proxyied by another device

   - Generalise the Ocelot support to new SoCs

   - Improve GICv4.1 vcpu entry, matching the corresponding KVM
     optimisation

   - Work around spurious interrupts on Qualcomm PDC

   - Random fixes and cleanups"

* tag 'irq-core-2020-12-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
  irqchip/qcom-pdc: Fix phantom irq when changing between rising/falling
  driver core: platform: Add devm_platform_get_irqs_affinity()
  ACPI: Drop acpi_dev_irqresource_disabled()
  resource: Add irqresource_disabled()
  genirq/affinity: Add irq_update_affinity_desc()
  irqchip/gic-v3-its: Flag device allocation as proxied if behind a PCI bridge
  irqchip/gic-v3-its: Tag ITS device as shared if allocating for a proxy device
  platform-msi: Track shared domain allocation
  irqchip/ti-sci-intr: Fix freeing of irqs
  irqchip/ti-sci-inta: Fix printing of inta id on probe success
  drivers/irqchip: Remove EZChip NPS interrupt controller
  Revert "genirq: Add fasteoi IPI flow"
  irqchip/hip04: Make IPIs use handle_percpu_devid_irq()
  irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  irqchip/armada-370-xp: Make IPIs use handle_percpu_devid_irq()
  irqchip/gic, gic-v3: Make SGIs use handle_percpu_devid_irq()
  irqchip/ocelot: Add support for Jaguar2 platforms
  irqchip/ocelot: Add support for Serval platforms
  irqchip/ocelot: Add support for Luton platforms
  irqchip/ocelot: prepare to support more SoC
  ...

1  2 
arch/Kconfig
arch/s390/Kconfig
drivers/base/platform.c
include/asm-generic/msi.h
include/linux/irqdomain.h
include/linux/platform_device.h
include/linux/preempt.h
kernel/irq/irqdomain.c

diff --cc arch/Kconfig
Simple merge
Simple merge
Simple merge
index 25344de0e8f9d85e1deee0f75cc55e3beecb7f30,1010e74cb8e054375e03230b2b281cc1d10c226d..bf910d47e900a954c6ea3e9ab5fdc3229c03112c
@@@ -30,8 -29,9 +31,11 @@@ typedef struct msi_alloc_info 
        } scratchpad[NUM_MSI_ALLOC_SCRATCHPAD_REGS];
  } msi_alloc_info_t;
  
+ /* Device generating MSIs is proxying for another device */
+ #define MSI_ALLOC_FLAGS_PROXY_DEVICE  (1UL << 0)
  #define GENERIC_MSI_DOMAIN_OPS                1
  
 +#endif /* CONFIG_GENERIC_MSI_IRQ_DOMAIN */
 +
  #endif
index ea5a337e0f8b80ac8c97197039c4c391f8675096,5701a8b01726be4cc71ecfa6910fadd35a3ee446..42d196805f587e8adafe294ec93612e9f3c09cf9
@@@ -381,12 -387,9 +387,10 @@@ extern int irq_domain_associate(struct 
  extern void irq_domain_associate_many(struct irq_domain *domain,
                                      unsigned int irq_base,
                                      irq_hw_number_t hwirq_base, int count);
- extern void irq_domain_disassociate(struct irq_domain *domain,
-                                   unsigned int irq);
  
 -extern unsigned int irq_create_mapping(struct irq_domain *host,
 -                                     irq_hw_number_t hwirq);
 +extern unsigned int irq_create_mapping_affinity(struct irq_domain *host,
 +                                    irq_hw_number_t hwirq,
 +                                    const struct irq_affinity_desc *affinity);
  extern unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec);
  extern void irq_dispose_mapping(unsigned int virq);
  
Simple merge
Simple merge
Simple merge