diff options
| -rw-r--r-- | drivers/pci/quirks.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 9871a3cca4d4..d1f0281279c3 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
| @@ -1417,6 +1417,38 @@ static void quirk_disable_intel_boot_interrupt(struct pci_dev *dev) | |||
| 1417 | dev->vendor, dev->device); | 1417 | dev->vendor, dev->device); |
| 1418 | } | 1418 | } |
| 1419 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_10, quirk_disable_intel_boot_interrupt); | 1419 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_10, quirk_disable_intel_boot_interrupt); |
| 1420 | |||
| 1421 | /* | ||
| 1422 | * disable boot interrupts on HT-1000 | ||
| 1423 | */ | ||
| 1424 | #define BC_HT1000_FEATURE_REG 0x64 | ||
| 1425 | #define BC_HT1000_PIC_REGS_ENABLE (1<<0) | ||
| 1426 | #define BC_HT1000_MAP_IDX 0xC00 | ||
| 1427 | #define BC_HT1000_MAP_DATA 0xC01 | ||
| 1428 | |||
| 1429 | static void quirk_disable_broadcom_boot_interrupt(struct pci_dev *dev) | ||
| 1430 | { | ||
| 1431 | u32 pci_config_dword; | ||
| 1432 | u8 irq; | ||
| 1433 | |||
| 1434 | if (noioapicquirk) | ||
| 1435 | return; | ||
| 1436 | |||
| 1437 | pci_read_config_dword(dev, BC_HT1000_FEATURE_REG, &pci_config_dword); | ||
| 1438 | pci_write_config_dword(dev, BC_HT1000_FEATURE_REG, pci_config_dword | | ||
| 1439 | BC_HT1000_PIC_REGS_ENABLE); | ||
| 1440 | |||
| 1441 | for (irq = 0x10; irq < 0x10 + 32; irq++) { | ||
| 1442 | outb(irq, BC_HT1000_MAP_IDX); | ||
| 1443 | outb(0x00, BC_HT1000_MAP_DATA); | ||
| 1444 | } | ||
| 1445 | |||
| 1446 | pci_write_config_dword(dev, BC_HT1000_FEATURE_REG, pci_config_dword); | ||
| 1447 | |||
| 1448 | printk(KERN_INFO "disabled boot interrupts on PCI device" | ||
| 1449 | "0x%04x:0x%04x\n", dev->vendor, dev->device); | ||
| 1450 | } | ||
| 1451 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000SB, quirk_disable_broadcom_boot_interrupt); | ||
| 1420 | #endif /* CONFIG_X86_IO_APIC */ | 1452 | #endif /* CONFIG_X86_IO_APIC */ |
| 1421 | 1453 | ||
| 1422 | /* | 1454 | /* |
