Skip to content

Boot IRQ quirks and rerouting

Olaf Dabrunz lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 43 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7add kernel cmdline option to disable pci-irq quirksdrivers/pci/quirks.c+15 -02 replies
2/7reroute PCI interrupt to legacy boot interrupt equivalentdrivers/acpi/pci_irq.c drivers/pci/quirks.c include/linux/pci.h +2 more+147 -13 replies
3/7disable legacy boot interrupt generationdrivers/pci/quirks.c include/linux/pci_ids.h+29 -01 reply
4/7disable broadcomm legacy boot interrupt generationdrivers/pci/quirks.c+30 -05 replies
5/7disable AMD/ATI legacy boot interrupt generationdrivers/pci/quirks.c+93 -02 replies
6/7disable pci legacy boot irq quirks on noapic bootinclude/asm-x86/io_apic.h+3 -01 reply
7/7bootirqquirk= parameter to enable bootirq quirks for additional chipsdrivers/pci/quirks.c+118 -02 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/7] Boot IRQ quirks and rerouting

These patches are against linux-2.6-tip, auto-x86-next.

When IRQ lines on secondary or higher IO-APICs are masked (as done by RT and others), many chipsets redirect IRQs on this line to the PIC, and thereby regularly to the first IO-APIC in the system. This causes spurious interrupts and can lead to disabled IRQ lines.

Disabling this "boot interrupt" (as it is mostly used to supply all IRQs to the legacy PIC during boot) is chipset-specific, and not possible for all chips. This patchset disables the boot interrupt on chipsets where this is possible and where we know how to do it.

When disabling the boot interrupt is not possible, the patches tell the IRQ code to always use the redirected interrupt line (on the first IO-APIC) instead of the "original" line on the secondary (tertiary ...) IO-APIC. The original line remains masked, and IRQs always appear on the boot interrupt line on the first IO-APIC instead.

Two new boot parameters control the quirks and are explained in the
patches: nobootirqquirk, bootirqquirk=0x<vendor>,0x<device>,<quirk_variant>. "noapic" also sets nobootirqquirk.

All patches are co-authored by Stefan Assmann and Olaf Dabrunz. But according to Documentation/SubmittingPatches, the patch submission format allows only for one author.

 drivers/acpi/pci_irq.c     |   63 ++++++++
 drivers/pci/quirks.c       |  339 ++++++++++++++++++++++++++++++++++++++++++++-
 include/asm-x86/io_apic.h  |    4 
 include/linux/pci.h        |    2 
 include/linux/pci_ids.h    |    6 
 include/linux/pci_quirks.h |   29 +++
 6 files changed, 435 insertions(+), 8 deletions(-)
Signature · 1 line
Olaf Dabrunz (od/odabrunz), SUSE Linux Products GmbH, Nürnberg