PCI: Disable boot interrupt quirk for ASUS M2N-LR
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 Tested-by: Solomon Peachy <pizza@shaftnet.org> Signed-off-by: Stefan Assmann <sassmann@kpanic.de> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
0ff199cb48
commit
c4e649b09f
@ -1685,6 +1685,29 @@ 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);
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm);
|
||||||
|
|
||||||
#ifdef CONFIG_X86_IO_APIC
|
#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,
|
* 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
|
* remap the original interrupt in the linux kernel to the boot interrupt, so
|
||||||
@ -1693,6 +1716,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)
|
static void quirk_reroute_to_boot_interrupts_intel(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
|
dmi_check_system(boot_interrupt_dmi_table);
|
||||||
if (noioapicquirk || noioapicreroute)
|
if (noioapicquirk || noioapicreroute)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user