The usual updates from the irq departement:

Core changes:

 - Provide IRQF_NO_AUTOEN as a flag for request*_irq() so drivers can be
   cleaned up which either use a seperate mechanism to prevent auto-enable
   at request time or have a racy mechanism which disables the interrupt
   right after request.

 - Get rid of the last usage of irq_create_identity_mapping() and remove
   the interface.

 - An overhaul of tasklet_disable(). Most usage sites of tasklet_disable()
   are in task context and usually in cleanup, teardown code pathes.
   tasklet_disable() spinwaits for a tasklet which is currently executed.
   That's not only a problem for PREEMPT_RT where this can lead to a live
   lock when the disabling task preempts the softirq thread. It's also
   problematic in context of virtualization when the vCPU which runs the
   tasklet is scheduled out and the disabling code has to spin wait until
   it's scheduled back in. Though there are a few code pathes which invoke
   tasklet_disable() from non-sleepable context. For these a new disable
   variant which still spinwaits is provided which allows to switch
   tasklet_disable() to a sleep wait mechanism. For the atomic use cases
   this does not solve the live lock issue on PREEMPT_RT. That is mitigated
   by blocking on the RT specific softirq lock.

 - The PREEMPT_RT specific implementation of softirq processing and
   local_bh_disable/enable().

   On RT enabled kernels soft interrupt processing happens always in task
   context and all interrupt handlers, which are not explicitly marked to
   be invoked in hard interrupt context are forced into task context as
   well. This allows to protect against softirq processing with a per
   CPU lock, which in turn allows to make BH disabled regions preemptible.

   Most of the softirq handling code is still shared. The RT/non-RT
   specific differences are addressed with a set of inline functions which
   provide the context specific functionality. The local_bh_disable() /
   local_bh_enable() mechanism are obviously seperate.

 - The usual set of small improvements and cleanups

Driver changes:

 - New drivers for Nuvoton WPCM450 and DT 79rc3243x interrupt controllers

 - Extended functionality for MStar, STM32 and SC7280 irq chips

 - Enhanced robustness for ARM GICv3/4.1 drivers

 - The usual set of cleanups and improvements all over the place
Merge tag 'irqchip-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core

Pull irqchip and irqdomain updates from Marc Zyngier:

 New HW support:

  - New driver for the Nuvoton WPCM450 interrupt controller
  - New driver for the IDT 79rc3243x interrupt controller
  - Add support for interrupt trigger configuration to the MStar irqchip
  - Add more external interrupt support to the STM32 irqchip
  - Add new compatible strings for QCOM SC7280 to the qcom-pdc binding

 Fixes and cleanups:

  - Drop irq_create_strict_mappings() and irq_create_identity_mapping()
    from the irqdomain API, with cleanups in a couple of drivers
  - Fix nested NMI issue with spurious interrupts on GICv3
  - Don't allow GICv4.1 vSGIs when the CPU doesn't support them
  - Various cleanups and minor fixes

Link: https://lore.kernel.org/r/20210424094640.1731920-1-maz@kernel.org