Message ID | 20170419072245.20943-1-sassmann@kpanic.de (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
[+cc Solomon] On Wed, Apr 19, 2017 at 09:22:45AM +0200, Stefan Assmann wrote: > The ASUS M2N-LR should not trigger boot interrupt quirks although it > carries an Intel 6702PXH. On this board the boot interrupt quirks > cause incorrect IRQ assignments and should be disabled. > > Fixes: > https://bugzilla.kernel.org/show_bug.cgi?id=43074 > > Signed-off-by: Stefan Assmann <sassmann@kpanic.de> Applied with Solomon's tested-by to pci/irq for v4.12, thanks! > --- > drivers/pci/quirks.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 6736836..f23ad20 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -1685,6 +1685,28 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260a, quirk_intel_pcie_pm); > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm); > > #ifdef CONFIG_X86_IO_APIC > +static int dmi_disable_ioapicreroute(const struct dmi_system_id *d) > +{ > + noioapicreroute = 1; > + pr_info("%s detected: disable boot interrupt reroute\n", d->ident); > + > + return 0; > +} > +static struct dmi_system_id boot_interrupt_dmi_table[] = { > + /* > + * Systems to exclude from boot interrupt reroute quirks > + */ > + { > + .callback = dmi_disable_ioapicreroute, > + .ident = "ASUSTek Computer INC. M2N-LR", > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTek Computer INC."), > + DMI_MATCH(DMI_PRODUCT_NAME, "M2N-LR"), > + }, > + }, > + {} > +}; > + > /* > * Boot interrupts on some chipsets cannot be turned off. For these chipsets, > * remap the original interrupt in the linux kernel to the boot interrupt, so > @@ -1693,6 +1715,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm); > */ > static void quirk_reroute_to_boot_interrupts_intel(struct pci_dev *dev) > { > + dmi_check_system(boot_interrupt_dmi_table); > if (noioapicquirk || noioapicreroute) > return; > > -- > 2.9.3 >
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 6736836..f23ad20 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -1685,6 +1685,28 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260a, quirk_intel_pcie_pm); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm); #ifdef CONFIG_X86_IO_APIC +static int dmi_disable_ioapicreroute(const struct dmi_system_id *d) +{ + noioapicreroute = 1; + pr_info("%s detected: disable boot interrupt reroute\n", d->ident); + + return 0; +} +static struct dmi_system_id boot_interrupt_dmi_table[] = { + /* + * Systems to exclude from boot interrupt reroute quirks + */ + { + .callback = dmi_disable_ioapicreroute, + .ident = "ASUSTek Computer INC. M2N-LR", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTek Computer INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "M2N-LR"), + }, + }, + {} +}; + /* * Boot interrupts on some chipsets cannot be turned off. For these chipsets, * remap the original interrupt in the linux kernel to the boot interrupt, so @@ -1693,6 +1715,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm); */ static void quirk_reroute_to_boot_interrupts_intel(struct pci_dev *dev) { + dmi_check_system(boot_interrupt_dmi_table); if (noioapicquirk || noioapicreroute) return;
The ASUS M2N-LR should not trigger boot interrupt quirks although it carries an Intel 6702PXH. On this board the boot interrupt quirks cause incorrect IRQ assignments and should be disabled. Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=43074 Signed-off-by: Stefan Assmann <sassmann@kpanic.de> --- drivers/pci/quirks.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)