aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kernel-parameters.txt7
-rw-r--r--arch/x86/pci/common.c9
-rw-r--r--drivers/acpi/pci_irq.c56
-rw-r--r--drivers/pci/quirks.c170
-rw-r--r--include/asm-x86/io_apic.h10
-rw-r--r--include/asm-x86/pci.h2
-rw-r--r--include/linux/pci.h6
-rw-r--r--include/linux/pci_ids.h5
8 files changed, 244 insertions, 21 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 09ad7450647b..f5662b7a34d1 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1529,6 +1529,13 @@ and is between 256 and 4096 characters. It is defined in the file
1529 nomsi [MSI] If the PCI_MSI kernel config parameter is 1529 nomsi [MSI] If the PCI_MSI kernel config parameter is
1530 enabled, this kernel boot option can be used to 1530 enabled, this kernel boot option can be used to
1531 disable the use of MSI interrupts system-wide. 1531 disable the use of MSI interrupts system-wide.
1532 noioapicquirk [APIC] Disable all boot interrupt quirks.
1533 Safety option to keep boot IRQs enabled. This
1534 should never be necessary.
1535 ioapicreroute [APIC] Enable rerouting of boot IRQs to the
1536 primary IO-APIC for bridges that cannot disable
1537 boot IRQs. This fixes a source of spurious IRQs
1538 when the system masks IRQs.
1532 biosirq [X86-32] Use PCI BIOS calls to get the interrupt 1539 biosirq [X86-32] Use PCI BIOS calls to get the interrupt
1533 routing table. These calls are known to be buggy 1540 routing table. These calls are known to be buggy
1534 on several machines and they hang the machine 1541 on several machines and they hang the machine
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index b67732bbb85a..1485a26ddcef 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -23,6 +23,8 @@ unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 |
23unsigned int pci_early_dump_regs; 23unsigned int pci_early_dump_regs;
24static int pci_bf_sort; 24static int pci_bf_sort;
25int pci_routeirq; 25int pci_routeirq;
26int noioapicquirk;
27int noioapicreroute = 1;
26int pcibios_last_bus = -1; 28int pcibios_last_bus = -1;
27unsigned long pirq_table_addr; 29unsigned long pirq_table_addr;
28struct pci_bus *pci_root_bus; 30struct pci_bus *pci_root_bus;
@@ -519,6 +521,13 @@ char * __devinit pcibios_setup(char *str)
519 } else if (!strcmp(str, "skip_isa_align")) { 521 } else if (!strcmp(str, "skip_isa_align")) {
520 pci_probe |= PCI_CAN_SKIP_ISA_ALIGN; 522 pci_probe |= PCI_CAN_SKIP_ISA_ALIGN;
521 return NULL; 523 return NULL;
524 } else if (!strcmp(str, "noioapicquirk")) {
525 noioapicquirk = 1;
526 return NULL;
527 } else if (!strcmp(str, "ioapicreroute")) {
528 if (noioapicreroute != -1)
529 noioapicreroute = 0;
530 return NULL;
522 } 531 }
523 return str; 532 return str;
524} 533}
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index 11acaee14d66..bf79d83bdfbb 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -384,6 +384,27 @@ acpi_pci_free_irq(struct acpi_prt_entry *entry,
384 return irq; 384 return irq;
385} 385}
386 386
387#ifdef CONFIG_X86_IO_APIC
388extern int noioapicquirk;
389
390static int bridge_has_boot_interrupt_variant(struct pci_bus *bus)
391{
392 struct pci_bus *bus_it;
393
394 for (bus_it = bus ; bus_it ; bus_it = bus_it->parent) {
395 if (!bus_it->self)
396 return 0;
397
398 printk(KERN_INFO "vendor=%04x device=%04x\n", bus_it->self->vendor,
399 bus_it->self->device);
400
401 if (bus_it->self->irq_reroute_variant)
402 return bus_it->self->irq_reroute_variant;
403 }
404 return 0;
405}
406#endif /* CONFIG_X86_IO_APIC */
407
387/* 408/*
388 * acpi_pci_irq_lookup 409 * acpi_pci_irq_lookup
389 * success: return IRQ >= 0 410 * success: return IRQ >= 0
@@ -413,6 +434,41 @@ acpi_pci_irq_lookup(struct pci_bus *bus,
413 } 434 }
414 435
415 ret = func(entry, triggering, polarity, link); 436 ret = func(entry, triggering, polarity, link);
437
438#ifdef CONFIG_X86_IO_APIC
439 /*
440 * Some chipsets (e.g. intel 6700PXH) generate a legacy INTx when the
441 * IRQ entry in the chipset's IO-APIC is masked (as, e.g. the RT kernel
442 * does during interrupt handling). When this INTx generation cannot be
443 * disabled, we reroute these interrupts to their legacy equivalent to
444 * get rid of spurious interrupts.
445 */
446 if (!noioapicquirk) {
447 switch (bridge_has_boot_interrupt_variant(bus)) {
448 case 0:
449 /* no rerouting necessary */
450 break;
451
452 case INTEL_IRQ_REROUTE_VARIANT:
453 /*
454 * Remap according to INTx routing table in 6700PXH
455 * specs, intel order number 302628-002, section
456 * 2.15.2. Other chipsets (80332, ...) have the same
457 * mapping and are handled here as well.
458 */
459 printk(KERN_INFO "pci irq %d -> rerouted to legacy "
460 "irq %d\n", ret, (ret % 4) + 16);
461 ret = (ret % 4) + 16;
462 break;
463
464 default:
465 printk(KERN_INFO "not rerouting irq %d to legacy irq: "
466 "unknown mapping\n", ret);
467 break;
468 }
469 }
470#endif /* CONFIG_X86_IO_APIC */
471
416 return ret; 472 return ret;
417} 473}
418 474
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 12d489395fad..0911b0c60b64 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -602,27 +602,6 @@ static void __init quirk_ioapic_rmw(struct pci_dev *dev)
602 sis_apic_bug = 1; 602 sis_apic_bug = 1;
603} 603}
604DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, PCI_ANY_ID, quirk_ioapic_rmw); 604DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, PCI_ANY_ID, quirk_ioapic_rmw);
605
606#define AMD8131_revA0 0x01
607#define AMD8131_revB0 0x11
608#define AMD8131_MISC 0x40
609#define AMD8131_NIOAMODE_BIT 0
610static void quirk_amd_8131_ioapic(struct pci_dev *dev)
611{
612 unsigned char tmp;
613
614 if (nr_ioapics == 0)
615 return;
616
617 if (dev->revision == AMD8131_revA0 || dev->revision == AMD8131_revB0) {
618 dev_info(&dev->dev, "Fixing up AMD8131 IOAPIC mode\n");
619 pci_read_config_byte( dev, AMD8131_MISC, &tmp);
620 tmp &= ~(1 << AMD8131_NIOAMODE_BIT);
621 pci_write_config_byte( dev, AMD8131_MISC, tmp);
622 }
623}
624DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_amd_8131_ioapic);
625DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_amd_8131_ioapic);
626#endif /* CONFIG_X86_IO_APIC */ 605#endif /* CONFIG_X86_IO_APIC */
627 606
628/* 607/*
@@ -1409,6 +1388,155 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2609, quirk_intel_pcie_pm);
1409DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260a, quirk_intel_pcie_pm); 1388DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260a, quirk_intel_pcie_pm);
1410DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm); 1389DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm);
1411 1390
1391#ifdef CONFIG_X86_IO_APIC
1392/*
1393 * Boot interrupts on some chipsets cannot be turned off. For these chipsets,
1394 * remap the original interrupt in the linux kernel to the boot interrupt, so
1395 * that a PCI device's interrupt handler is installed on the boot interrupt
1396 * line instead.
1397 */
1398static void quirk_reroute_to_boot_interrupts_intel(struct pci_dev *dev)
1399{
1400 if (noioapicquirk)
1401 return;
1402
1403 dev->irq_reroute_variant = INTEL_IRQ_REROUTE_VARIANT;
1404
1405 printk(KERN_INFO "PCI quirk: reroute interrupts for 0x%04x:0x%04x\n",
1406 dev->vendor, dev->device);
1407 return;
1408}
1409DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80333_0, quirk_reroute_to_boot_interrupts_intel);
1410DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80333_1, quirk_reroute_to_boot_interrupts_intel);
1411DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_0, quirk_reroute_to_boot_interrupts_intel);
1412DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_0, quirk_reroute_to_boot_interrupts_intel);
1413DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_1, quirk_reroute_to_boot_interrupts_intel);
1414DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXHV, quirk_reroute_to_boot_interrupts_intel);
1415DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80332_0, quirk_reroute_to_boot_interrupts_intel);
1416DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80332_1, quirk_reroute_to_boot_interrupts_intel);
1417DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80333_0, quirk_reroute_to_boot_interrupts_intel);
1418DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80333_1, quirk_reroute_to_boot_interrupts_intel);
1419DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_0, quirk_reroute_to_boot_interrupts_intel);
1420DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_0, quirk_reroute_to_boot_interrupts_intel);
1421DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_1, quirk_reroute_to_boot_interrupts_intel);
1422DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXHV, quirk_reroute_to_boot_interrupts_intel);
1423DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80332_0, quirk_reroute_to_boot_interrupts_intel);
1424DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80332_1, quirk_reroute_to_boot_interrupts_intel);
1425
1426/*
1427 * On some chipsets we can disable the generation of legacy INTx boot
1428 * interrupts.
1429 */
1430
1431/*
1432 * IO-APIC1 on 6300ESB generates boot interrupts, see intel order no
1433 * 300641-004US, section 5.7.3.
1434 */
1435#define INTEL_6300_IOAPIC_ABAR 0x40
1436#define INTEL_6300_DISABLE_BOOT_IRQ (1<<14)
1437
1438static void quirk_disable_intel_boot_interrupt(struct pci_dev *dev)
1439{
1440 u16 pci_config_word;
1441
1442 if (noioapicquirk)
1443 return;
1444
1445 pci_read_config_word(dev, INTEL_6300_IOAPIC_ABAR, &pci_config_word);
1446 pci_config_word |= INTEL_6300_DISABLE_BOOT_IRQ;
1447 pci_write_config_word(dev, INTEL_6300_IOAPIC_ABAR, pci_config_word);
1448
1449 printk(KERN_INFO "disabled boot interrupt on device 0x%04x:0x%04x\n",
1450 dev->vendor, dev->device);
1451}
1452DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_10, quirk_disable_intel_boot_interrupt);
1453DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_10, quirk_disable_intel_boot_interrupt);
1454
1455/*
1456 * disable boot interrupts on HT-1000
1457 */
1458#define BC_HT1000_FEATURE_REG 0x64
1459#define BC_HT1000_PIC_REGS_ENABLE (1<<0)
1460#define BC_HT1000_MAP_IDX 0xC00
1461#define BC_HT1000_MAP_DATA 0xC01
1462
1463static void quirk_disable_broadcom_boot_interrupt(struct pci_dev *dev)
1464{
1465 u32 pci_config_dword;
1466 u8 irq;
1467
1468 if (noioapicquirk)
1469 return;
1470
1471 pci_read_config_dword(dev, BC_HT1000_FEATURE_REG, &pci_config_dword);
1472 pci_write_config_dword(dev, BC_HT1000_FEATURE_REG, pci_config_dword |
1473 BC_HT1000_PIC_REGS_ENABLE);
1474
1475 for (irq = 0x10; irq < 0x10 + 32; irq++) {
1476 outb(irq, BC_HT1000_MAP_IDX);
1477 outb(0x00, BC_HT1000_MAP_DATA);
1478 }
1479
1480 pci_write_config_dword(dev, BC_HT1000_FEATURE_REG, pci_config_dword);
1481
1482 printk(KERN_INFO "disabled boot interrupts on PCI device"
1483 "0x%04x:0x%04x\n", dev->vendor, dev->device);
1484}
1485DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000SB, quirk_disable_broadcom_boot_interrupt);
1486DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000SB, quirk_disable_broadcom_boot_interrupt);
1487
1488/*
1489 * disable boot interrupts on AMD and ATI chipsets
1490 */
1491/*
1492 * NOIOAMODE needs to be disabled to disable "boot interrupts". For AMD 8131
1493 * rev. A0 and B0, NOIOAMODE needs to be disabled anyway to fix IO-APIC mode
1494 * (due to an erratum).
1495 */
1496#define AMD_813X_MISC 0x40
1497#define AMD_813X_NOIOAMODE (1<<0)
1498
1499static void quirk_disable_amd_813x_boot_interrupt(struct pci_dev *dev)
1500{
1501 u32 pci_config_dword;
1502
1503 if (noioapicquirk)
1504 return;
1505
1506 pci_read_config_dword(dev, AMD_813X_MISC, &pci_config_dword);
1507 pci_config_dword &= ~AMD_813X_NOIOAMODE;
1508 pci_write_config_dword(dev, AMD_813X_MISC, pci_config_dword);
1509
1510 printk(KERN_INFO "disabled boot interrupts on PCI device "
1511 "0x%04x:0x%04x\n", dev->vendor, dev->device);
1512}
1513DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_amd_813x_boot_interrupt);
1514DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8132_BRIDGE, quirk_disable_amd_813x_boot_interrupt);
1515
1516#define AMD_8111_PCI_IRQ_ROUTING 0x56
1517
1518static void quirk_disable_amd_8111_boot_interrupt(struct pci_dev *dev)
1519{
1520 u16 pci_config_word;
1521
1522 if (noioapicquirk)
1523 return;
1524
1525 pci_read_config_word(dev, AMD_8111_PCI_IRQ_ROUTING, &pci_config_word);
1526 if (!pci_config_word) {
1527 printk(KERN_INFO "boot interrupts on PCI device 0x%04x:0x%04x "
1528 "already disabled\n",
1529 dev->vendor, dev->device);
1530 return;
1531 }
1532 pci_write_config_word(dev, AMD_8111_PCI_IRQ_ROUTING, 0);
1533 printk(KERN_INFO "disabled boot interrupts on PCI device "
1534 "0x%04x:0x%04x\n", dev->vendor, dev->device);
1535}
1536DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8111_SMBUS, quirk_disable_amd_8111_boot_interrupt);
1537DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8111_SMBUS, quirk_disable_amd_8111_boot_interrupt);
1538#endif /* CONFIG_X86_IO_APIC */
1539
1412/* 1540/*
1413 * Toshiba TC86C001 IDE controller reports the standard 8-byte BAR0 size 1541 * Toshiba TC86C001 IDE controller reports the standard 8-byte BAR0 size
1414 * but the PIO transfers won't work if BAR0 falls at the odd 8 bytes. 1542 * but the PIO transfers won't work if BAR0 falls at the odd 8 bytes.
diff --git a/include/asm-x86/io_apic.h b/include/asm-x86/io_apic.h
index 14f82bbcb5fd..721605d8f116 100644
--- a/include/asm-x86/io_apic.h
+++ b/include/asm-x86/io_apic.h
@@ -157,11 +157,21 @@ extern int sis_apic_bug;
157/* 1 if "noapic" boot option passed */ 157/* 1 if "noapic" boot option passed */
158extern int skip_ioapic_setup; 158extern int skip_ioapic_setup;
159 159
160/* 1 if "noapic" boot option passed */
161extern int noioapicquirk;
162
163/* -1 if "noapic" boot option passed */
164extern int noioapicreroute;
165
160/* 1 if the timer IRQ uses the '8259A Virtual Wire' mode */ 166/* 1 if the timer IRQ uses the '8259A Virtual Wire' mode */
161extern int timer_through_8259; 167extern int timer_through_8259;
162 168
163static inline void disable_ioapic_setup(void) 169static inline void disable_ioapic_setup(void)
164{ 170{
171#ifdef CONFIG_PCI
172 noioapicquirk = 1;
173 noioapicreroute = -1;
174#endif
165 skip_ioapic_setup = 1; 175 skip_ioapic_setup = 1;
166} 176}
167 177
diff --git a/include/asm-x86/pci.h b/include/asm-x86/pci.h
index 2db14cf17db8..52a29f7668ef 100644
--- a/include/asm-x86/pci.h
+++ b/include/asm-x86/pci.h
@@ -19,6 +19,8 @@ struct pci_sysdata {
19}; 19};
20 20
21extern int pci_routeirq; 21extern int pci_routeirq;
22extern int noioapicquirk;
23extern int ioapicreroute;
22 24
23/* scan a bus after allocating a pci_sysdata for it */ 25/* scan a bus after allocating a pci_sysdata for it */
24extern struct pci_bus *pci_scan_bus_on_node(int busno, struct pci_ops *ops, 26extern struct pci_bus *pci_scan_bus_on_node(int busno, struct pci_ops *ops,
diff --git a/include/linux/pci.h b/include/linux/pci.h
index a6a088e1a804..cfc2297c3e28 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -126,6 +126,11 @@ enum pci_dev_flags {
126 PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = (__force pci_dev_flags_t) 1, 126 PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = (__force pci_dev_flags_t) 1,
127}; 127};
128 128
129enum pci_irq_reroute_variant {
130 INTEL_IRQ_REROUTE_VARIANT = 1,
131 MAX_IRQ_REROUTE_VARIANTS = 3
132};
133
129typedef unsigned short __bitwise pci_bus_flags_t; 134typedef unsigned short __bitwise pci_bus_flags_t;
130enum pci_bus_flags { 135enum pci_bus_flags {
131 PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1, 136 PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1,
@@ -210,6 +215,7 @@ struct pci_dev {
210 unsigned int no_msi:1; /* device may not use msi */ 215 unsigned int no_msi:1; /* device may not use msi */
211 unsigned int block_ucfg_access:1; /* userspace config space access is blocked */ 216 unsigned int block_ucfg_access:1; /* userspace config space access is blocked */
212 unsigned int broken_parity_status:1; /* Device generates false positive parity */ 217 unsigned int broken_parity_status:1; /* Device generates false positive parity */
218 unsigned int irq_reroute_variant:2; /* device needs IRQ rerouting variant */
213 unsigned int msi_enabled:1; 219 unsigned int msi_enabled:1;
214 unsigned int msix_enabled:1; 220 unsigned int msix_enabled:1;
215 unsigned int is_managed:1; 221 unsigned int is_managed:1;
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 6be6a7943d8b..2b3934c735b2 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2238,6 +2238,10 @@
2238#define PCI_DEVICE_ID_INTEL_PXH_0 0x0329 2238#define PCI_DEVICE_ID_INTEL_PXH_0 0x0329
2239#define PCI_DEVICE_ID_INTEL_PXH_1 0x032A 2239#define PCI_DEVICE_ID_INTEL_PXH_1 0x032A
2240#define PCI_DEVICE_ID_INTEL_PXHV 0x032C 2240#define PCI_DEVICE_ID_INTEL_PXHV 0x032C
2241#define PCI_DEVICE_ID_INTEL_80332_0 0x0330
2242#define PCI_DEVICE_ID_INTEL_80332_1 0x0332
2243#define PCI_DEVICE_ID_INTEL_80333_0 0x0370
2244#define PCI_DEVICE_ID_INTEL_80333_1 0x0372
2241#define PCI_DEVICE_ID_INTEL_82375 0x0482 2245#define PCI_DEVICE_ID_INTEL_82375 0x0482
2242#define PCI_DEVICE_ID_INTEL_82424 0x0483 2246#define PCI_DEVICE_ID_INTEL_82424 0x0483
2243#define PCI_DEVICE_ID_INTEL_82378 0x0484 2247#define PCI_DEVICE_ID_INTEL_82378 0x0484
@@ -2310,6 +2314,7 @@
2310#define PCI_DEVICE_ID_INTEL_ESB_4 0x25a4 2314#define PCI_DEVICE_ID_INTEL_ESB_4 0x25a4
2311#define PCI_DEVICE_ID_INTEL_ESB_5 0x25a6 2315#define PCI_DEVICE_ID_INTEL_ESB_5 0x25a6
2312#define PCI_DEVICE_ID_INTEL_ESB_9 0x25ab 2316#define PCI_DEVICE_ID_INTEL_ESB_9 0x25ab
2317#define PCI_DEVICE_ID_INTEL_ESB_10 0x25ac
2313#define PCI_DEVICE_ID_INTEL_82820_HB 0x2500 2318#define PCI_DEVICE_ID_INTEL_82820_HB 0x2500
2314#define PCI_DEVICE_ID_INTEL_82820_UP_HB 0x2501 2319#define PCI_DEVICE_ID_INTEL_82820_UP_HB 0x2501
2315#define PCI_DEVICE_ID_INTEL_82850_HB 0x2530 2320#define PCI_DEVICE_ID_INTEL_82850_HB 0x2530