diff options
-rw-r--r-- | arch/x86/pci/fixup.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c index d0e6e403b4f6..5dd467bd6121 100644 --- a/arch/x86/pci/fixup.c +++ b/arch/x86/pci/fixup.c | |||
@@ -519,3 +519,20 @@ static void sb600_disable_hpet_bar(struct pci_dev *dev) | |||
519 | } | 519 | } |
520 | } | 520 | } |
521 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4385, sb600_disable_hpet_bar); | 521 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4385, sb600_disable_hpet_bar); |
522 | |||
523 | /* | ||
524 | * Twinhead H12Y needs us to block out a region otherwise we map devices | ||
525 | * there and any access kills the box. | ||
526 | * | ||
527 | * See: https://bugzilla.kernel.org/show_bug.cgi?id=10231 | ||
528 | * | ||
529 | * Match off the LPC and svid/sdid (older kernels lose the bridge subvendor) | ||
530 | */ | ||
531 | static void __devinit twinhead_reserve_killing_zone(struct pci_dev *dev) | ||
532 | { | ||
533 | if (dev->subsystem_vendor == 0x14FF && dev->subsystem_device == 0xA003) { | ||
534 | pr_info("Reserving memory on Twinhead H12Y\n"); | ||
535 | request_mem_region(0xFFB00000, 0x100000, "twinhead"); | ||
536 | } | ||
537 | } | ||
538 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x27B9, twinhead_reserve_killing_zone); | ||