Merge tag 'x86-irq-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 30 Aug 2021 22:20:05 +0000 (15:20 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 30 Aug 2021 22:20:05 +0000 (15:20 -0700)
Pull x86 PIRQ updates from Thomas Gleixner:
 "A set of updates to support port 0x22/0x23 based PCI configuration
  space which can be found on various ALi chipsets and is also available
  on older Intel systems which expose a PIRQ router.

  While the Intel support is more or less nostalgia, the ALi chips are
  still in use on popular embedded boards used for routers"

* tag 'x86-irq-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86: Fix typo s/ECLR/ELCR/ for the PIC register
  x86: Avoid magic number with ELCR register accesses
  x86/PCI: Add support for the Intel 82426EX PIRQ router
  x86/PCI: Add support for the Intel 82374EB/82374SB (ESC) PIRQ router
  x86/PCI: Add support for the ALi M1487 (IBC) PIRQ router
  x86: Add support for 0x22/0x23 port I/O configuration space

1  2 
arch/x86/kernel/apic/io_apic.c

@@@ -764,7 -764,7 +764,7 @@@ static bool irq_active_low(int idx
  static bool EISA_ELCR(unsigned int irq)
  {
        if (irq < nr_legacy_irqs()) {
-               unsigned int port = 0x4d0 + (irq >> 3);
+               unsigned int port = PIC_ELCR1 + (irq >> 3);
                return (inb(port) >> (irq & 7)) & 1;
        }
        apic_printk(APIC_VERBOSE, KERN_INFO
@@@ -1986,8 -1986,7 +1986,8 @@@ static struct irq_chip ioapic_chip __re
        .irq_set_affinity       = ioapic_set_affinity,
        .irq_retrigger          = irq_chip_retrigger_hierarchy,
        .irq_get_irqchip_state  = ioapic_irq_get_chip_state,
 -      .flags                  = IRQCHIP_SKIP_SET_WAKE,
 +      .flags                  = IRQCHIP_SKIP_SET_WAKE |
 +                                IRQCHIP_AFFINITY_PRE_STARTUP,
  };
  
  static struct irq_chip ioapic_ir_chip __read_mostly = {
        .irq_set_affinity       = ioapic_set_affinity,
        .irq_retrigger          = irq_chip_retrigger_hierarchy,
        .irq_get_irqchip_state  = ioapic_irq_get_chip_state,
 -      .flags                  = IRQCHIP_SKIP_SET_WAKE,
 +      .flags                  = IRQCHIP_SKIP_SET_WAKE |
 +                                IRQCHIP_AFFINITY_PRE_STARTUP,
  };
  
  static inline void init_IO_APIC_traps(void)