diff options
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r-- | drivers/pci/quirks.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 5627ce1d2b32..3a4f49f4effb 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -462,11 +462,11 @@ static void __devinit quirk_vt82c686_acpi(struct pci_dev *dev) | |||
462 | 462 | ||
463 | pci_read_config_word(dev, 0x70, &hm); | 463 | pci_read_config_word(dev, 0x70, &hm); |
464 | hm &= PCI_BASE_ADDRESS_IO_MASK; | 464 | hm &= PCI_BASE_ADDRESS_IO_MASK; |
465 | quirk_io_region(dev, hm, 128, PCI_BRIDGE_RESOURCES + 1, "vt82c868 HW-mon"); | 465 | quirk_io_region(dev, hm, 128, PCI_BRIDGE_RESOURCES + 1, "vt82c686 HW-mon"); |
466 | 466 | ||
467 | pci_read_config_dword(dev, 0x90, &smb); | 467 | pci_read_config_dword(dev, 0x90, &smb); |
468 | smb &= PCI_BASE_ADDRESS_IO_MASK; | 468 | smb &= PCI_BASE_ADDRESS_IO_MASK; |
469 | quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 2, "vt82c868 SMB"); | 469 | quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 2, "vt82c686 SMB"); |
470 | } | 470 | } |
471 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_vt82c686_acpi ); | 471 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_vt82c686_acpi ); |
472 | 472 | ||
@@ -1243,6 +1243,21 @@ static void __devinit quirk_netmos(struct pci_dev *dev) | |||
1243 | } | 1243 | } |
1244 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NETMOS, PCI_ANY_ID, quirk_netmos); | 1244 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NETMOS, PCI_ANY_ID, quirk_netmos); |
1245 | 1245 | ||
1246 | |||
1247 | static void __devinit fixup_rev1_53c810(struct pci_dev* dev) | ||
1248 | { | ||
1249 | /* rev 1 ncr53c810 chips don't set the class at all which means | ||
1250 | * they don't get their resources remapped. Fix that here. | ||
1251 | */ | ||
1252 | |||
1253 | if (dev->class == PCI_CLASS_NOT_DEFINED) { | ||
1254 | printk(KERN_INFO "NCR 53c810 rev 1 detected, setting PCI class.\n"); | ||
1255 | dev->class = PCI_CLASS_STORAGE_SCSI; | ||
1256 | } | ||
1257 | } | ||
1258 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810); | ||
1259 | |||
1260 | |||
1246 | static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) | 1261 | static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) |
1247 | { | 1262 | { |
1248 | while (f < end) { | 1263 | while (f < end) { |