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) { |
