diff options
| -rw-r--r-- | arch/x86/pci/irq.c | 2 | ||||
| -rw-r--r-- | arch/x86/pci/legacy.c | 2 | ||||
| -rw-r--r-- | arch/x86/pci/mmconfig-shared.c | 65 | ||||
| -rw-r--r-- | drivers/pci/hotplug/acpi_pcihp.c | 38 | ||||
| -rw-r--r-- | drivers/pci/pcie/aer/aerdrv_acpi.c | 7 | ||||
| -rw-r--r-- | drivers/pci/probe.c | 3 | ||||
| -rw-r--r-- | drivers/pci/setup-bus.c | 35 | ||||
| -rw-r--r-- | include/linux/pci-acpi.h | 11 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 3 |
9 files changed, 130 insertions, 36 deletions
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c index fec0123b33a9..8e077185e185 100644 --- a/arch/x86/pci/irq.c +++ b/arch/x86/pci/irq.c | |||
| @@ -590,6 +590,8 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route | |||
| 590 | case PCI_DEVICE_ID_INTEL_ICH10_1: | 590 | case PCI_DEVICE_ID_INTEL_ICH10_1: |
| 591 | case PCI_DEVICE_ID_INTEL_ICH10_2: | 591 | case PCI_DEVICE_ID_INTEL_ICH10_2: |
| 592 | case PCI_DEVICE_ID_INTEL_ICH10_3: | 592 | case PCI_DEVICE_ID_INTEL_ICH10_3: |
| 593 | case PCI_DEVICE_ID_INTEL_PCH_0: | ||
| 594 | case PCI_DEVICE_ID_INTEL_PCH_1: | ||
| 593 | r->name = "PIIX/ICH"; | 595 | r->name = "PIIX/ICH"; |
| 594 | r->get = pirq_piix_get; | 596 | r->get = pirq_piix_get; |
| 595 | r->set = pirq_piix_set; | 597 | r->set = pirq_piix_set; |
diff --git a/arch/x86/pci/legacy.c b/arch/x86/pci/legacy.c index ec9ce35e44d6..b722dd481b39 100644 --- a/arch/x86/pci/legacy.c +++ b/arch/x86/pci/legacy.c | |||
| @@ -14,7 +14,7 @@ static void __devinit pcibios_fixup_peer_bridges(void) | |||
| 14 | int n, devfn; | 14 | int n, devfn; |
| 15 | long node; | 15 | long node; |
| 16 | 16 | ||
| 17 | if (pcibios_last_bus <= 0 || pcibios_last_bus >= 0xff) | 17 | if (pcibios_last_bus <= 0 || pcibios_last_bus > 0xff) |
| 18 | return; | 18 | return; |
| 19 | DBG("PCI: Peer bridge fixup\n"); | 19 | DBG("PCI: Peer bridge fixup\n"); |
| 20 | 20 | ||
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c index 2bd5c53f6386..d9635764ce3d 100644 --- a/arch/x86/pci/mmconfig-shared.c +++ b/arch/x86/pci/mmconfig-shared.c | |||
| @@ -293,7 +293,7 @@ static acpi_status __init find_mboard_resource(acpi_handle handle, u32 lvl, | |||
| 293 | return AE_OK; | 293 | return AE_OK; |
| 294 | } | 294 | } |
| 295 | 295 | ||
| 296 | static int __init is_acpi_reserved(unsigned long start, unsigned long end) | 296 | static int __init is_acpi_reserved(u64 start, u64 end, unsigned not_used) |
| 297 | { | 297 | { |
| 298 | struct resource mcfg_res; | 298 | struct resource mcfg_res; |
| 299 | 299 | ||
| @@ -310,6 +310,41 @@ static int __init is_acpi_reserved(unsigned long start, unsigned long end) | |||
| 310 | return mcfg_res.flags; | 310 | return mcfg_res.flags; |
| 311 | } | 311 | } |
| 312 | 312 | ||
| 313 | typedef int (*check_reserved_t)(u64 start, u64 end, unsigned type); | ||
| 314 | |||
| 315 | static int __init is_mmconf_reserved(check_reserved_t is_reserved, | ||
| 316 | u64 addr, u64 size, int i, | ||
| 317 | typeof(pci_mmcfg_config[0]) *cfg, int with_e820) | ||
| 318 | { | ||
| 319 | u64 old_size = size; | ||
| 320 | int valid = 0; | ||
| 321 | |||
| 322 | while (!is_reserved(addr, addr + size - 1, E820_RESERVED)) { | ||
| 323 | size >>= 1; | ||
| 324 | if (size < (16UL<<20)) | ||
| 325 | break; | ||
| 326 | } | ||
| 327 | |||
| 328 | if (size >= (16UL<<20) || size == old_size) { | ||
| 329 | printk(KERN_NOTICE | ||
| 330 | "PCI: MCFG area at %Lx reserved in %s\n", | ||
| 331 | addr, with_e820?"E820":"ACPI motherboard resources"); | ||
| 332 | valid = 1; | ||
| 333 | |||
| 334 | if (old_size != size) { | ||
| 335 | /* update end_bus_number */ | ||
| 336 | cfg->end_bus_number = cfg->start_bus_number + ((size>>20) - 1); | ||
| 337 | printk(KERN_NOTICE "PCI: updated MCFG configuration %d: base %lx " | ||
| 338 | "segment %hu buses %u - %u\n", | ||
| 339 | i, (unsigned long)cfg->address, cfg->pci_segment, | ||
| 340 | (unsigned int)cfg->start_bus_number, | ||
| 341 | (unsigned int)cfg->end_bus_number); | ||
| 342 | } | ||
| 343 | } | ||
| 344 | |||
| 345 | return valid; | ||
| 346 | } | ||
| 347 | |||
| 313 | static void __init pci_mmcfg_reject_broken(int early) | 348 | static void __init pci_mmcfg_reject_broken(int early) |
| 314 | { | 349 | { |
| 315 | typeof(pci_mmcfg_config[0]) *cfg; | 350 | typeof(pci_mmcfg_config[0]) *cfg; |
| @@ -324,21 +359,22 @@ static void __init pci_mmcfg_reject_broken(int early) | |||
| 324 | 359 | ||
| 325 | for (i = 0; i < pci_mmcfg_config_num; i++) { | 360 | for (i = 0; i < pci_mmcfg_config_num; i++) { |
| 326 | int valid = 0; | 361 | int valid = 0; |
| 327 | u32 size = (cfg->end_bus_number + 1) << 20; | 362 | u64 addr, size; |
| 363 | |||
| 328 | cfg = &pci_mmcfg_config[i]; | 364 | cfg = &pci_mmcfg_config[i]; |
| 365 | addr = cfg->start_bus_number; | ||
| 366 | addr <<= 20; | ||
| 367 | addr += cfg->address; | ||
| 368 | size = cfg->end_bus_number + 1 - cfg->start_bus_number; | ||
| 369 | size <<= 20; | ||
| 329 | printk(KERN_NOTICE "PCI: MCFG configuration %d: base %lx " | 370 | printk(KERN_NOTICE "PCI: MCFG configuration %d: base %lx " |
| 330 | "segment %hu buses %u - %u\n", | 371 | "segment %hu buses %u - %u\n", |
| 331 | i, (unsigned long)cfg->address, cfg->pci_segment, | 372 | i, (unsigned long)cfg->address, cfg->pci_segment, |
| 332 | (unsigned int)cfg->start_bus_number, | 373 | (unsigned int)cfg->start_bus_number, |
| 333 | (unsigned int)cfg->end_bus_number); | 374 | (unsigned int)cfg->end_bus_number); |
| 334 | 375 | ||
| 335 | if (!early && | 376 | if (!early) |
| 336 | is_acpi_reserved(cfg->address, cfg->address + size - 1)) { | 377 | valid = is_mmconf_reserved(is_acpi_reserved, addr, size, i, cfg, 0); |
| 337 | printk(KERN_NOTICE "PCI: MCFG area at %Lx reserved " | ||
| 338 | "in ACPI motherboard resources\n", | ||
| 339 | cfg->address); | ||
| 340 | valid = 1; | ||
| 341 | } | ||
| 342 | 378 | ||
| 343 | if (valid) | 379 | if (valid) |
| 344 | continue; | 380 | continue; |
| @@ -347,16 +383,11 @@ static void __init pci_mmcfg_reject_broken(int early) | |||
| 347 | printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %Lx is not" | 383 | printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %Lx is not" |
| 348 | " reserved in ACPI motherboard resources\n", | 384 | " reserved in ACPI motherboard resources\n", |
| 349 | cfg->address); | 385 | cfg->address); |
| 386 | |||
| 350 | /* Don't try to do this check unless configuration | 387 | /* Don't try to do this check unless configuration |
| 351 | type 1 is available. how about type 2 ?*/ | 388 | type 1 is available. how about type 2 ?*/ |
| 352 | if (raw_pci_ops && e820_all_mapped(cfg->address, | 389 | if (raw_pci_ops) |
| 353 | cfg->address + size - 1, | 390 | valid = is_mmconf_reserved(e820_all_mapped, addr, size, i, cfg, 1); |
| 354 | E820_RESERVED)) { | ||
| 355 | printk(KERN_NOTICE | ||
| 356 | "PCI: MCFG area at %Lx reserved in E820\n", | ||
| 357 | cfg->address); | ||
| 358 | valid = 1; | ||
| 359 | } | ||
| 360 | 391 | ||
| 361 | if (!valid) | 392 | if (!valid) |
| 362 | goto reject; | 393 | goto reject; |
diff --git a/drivers/pci/hotplug/acpi_pcihp.c b/drivers/pci/hotplug/acpi_pcihp.c index 93e37f0666ab..e17ef54f0efc 100644 --- a/drivers/pci/hotplug/acpi_pcihp.c +++ b/drivers/pci/hotplug/acpi_pcihp.c | |||
| @@ -382,7 +382,7 @@ EXPORT_SYMBOL_GPL(acpi_get_hp_params_from_firmware); | |||
| 382 | int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags) | 382 | int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags) |
| 383 | { | 383 | { |
| 384 | acpi_status status; | 384 | acpi_status status; |
| 385 | acpi_handle chandle, handle = DEVICE_ACPI_HANDLE(&(dev->dev)); | 385 | acpi_handle chandle, handle; |
| 386 | struct pci_dev *pdev = dev; | 386 | struct pci_dev *pdev = dev; |
| 387 | struct pci_bus *parent; | 387 | struct pci_bus *parent; |
| 388 | struct acpi_buffer string = { ACPI_ALLOCATE_BUFFER, NULL }; | 388 | struct acpi_buffer string = { ACPI_ALLOCATE_BUFFER, NULL }; |
| @@ -399,10 +399,25 @@ int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags) | |||
| 399 | * Per PCI firmware specification, we should run the ACPI _OSC | 399 | * Per PCI firmware specification, we should run the ACPI _OSC |
| 400 | * method to get control of hotplug hardware before using it. If | 400 | * method to get control of hotplug hardware before using it. If |
| 401 | * an _OSC is missing, we look for an OSHP to do the same thing. | 401 | * an _OSC is missing, we look for an OSHP to do the same thing. |
| 402 | * To handle different BIOS behavior, we look for _OSC and OSHP | 402 | * To handle different BIOS behavior, we look for _OSC on a root |
| 403 | * within the scope of the hotplug controller and its parents, | 403 | * bridge preferentially (according to PCI fw spec). Later for |
| 404 | * OSHP within the scope of the hotplug controller and its parents, | ||
| 404 | * upto the host bridge under which this controller exists. | 405 | * upto the host bridge under which this controller exists. |
| 405 | */ | 406 | */ |
| 407 | handle = acpi_find_root_bridge_handle(pdev); | ||
| 408 | if (handle) { | ||
| 409 | acpi_get_name(handle, ACPI_FULL_PATHNAME, &string); | ||
| 410 | dbg("Trying to get hotplug control for %s\n", | ||
| 411 | (char *)string.pointer); | ||
| 412 | status = pci_osc_control_set(handle, flags); | ||
| 413 | if (ACPI_SUCCESS(status)) | ||
| 414 | goto got_one; | ||
| 415 | kfree(string.pointer); | ||
| 416 | string = (struct acpi_buffer){ ACPI_ALLOCATE_BUFFER, NULL }; | ||
| 417 | } | ||
| 418 | |||
| 419 | pdev = dev; | ||
| 420 | handle = DEVICE_ACPI_HANDLE(&dev->dev); | ||
| 406 | while (!handle) { | 421 | while (!handle) { |
| 407 | /* | 422 | /* |
| 408 | * This hotplug controller was not listed in the ACPI name | 423 | * This hotplug controller was not listed in the ACPI name |
| @@ -427,15 +442,9 @@ int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags) | |||
| 427 | acpi_get_name(handle, ACPI_FULL_PATHNAME, &string); | 442 | acpi_get_name(handle, ACPI_FULL_PATHNAME, &string); |
| 428 | dbg("Trying to get hotplug control for %s \n", | 443 | dbg("Trying to get hotplug control for %s \n", |
| 429 | (char *)string.pointer); | 444 | (char *)string.pointer); |
| 430 | status = pci_osc_control_set(handle, flags); | 445 | status = acpi_run_oshp(handle); |
| 431 | if (status == AE_NOT_FOUND) | 446 | if (ACPI_SUCCESS(status)) |
| 432 | status = acpi_run_oshp(handle); | 447 | goto got_one; |
| 433 | if (ACPI_SUCCESS(status)) { | ||
| 434 | dbg("Gained control for hotplug HW for pci %s (%s)\n", | ||
| 435 | pci_name(dev), (char *)string.pointer); | ||
| 436 | kfree(string.pointer); | ||
| 437 | return 0; | ||
| 438 | } | ||
| 439 | if (acpi_root_bridge(handle)) | 448 | if (acpi_root_bridge(handle)) |
| 440 | break; | 449 | break; |
| 441 | chandle = handle; | 450 | chandle = handle; |
| @@ -449,6 +458,11 @@ int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags) | |||
| 449 | 458 | ||
| 450 | kfree(string.pointer); | 459 | kfree(string.pointer); |
| 451 | return -ENODEV; | 460 | return -ENODEV; |
| 461 | got_one: | ||
| 462 | dbg("Gained control for hotplug HW for pci %s (%s)\n", pci_name(dev), | ||
| 463 | (char *)string.pointer); | ||
| 464 | kfree(string.pointer); | ||
| 465 | return 0; | ||
| 452 | } | 466 | } |
| 453 | EXPORT_SYMBOL(acpi_get_hp_hw_control_from_firmware); | 467 | EXPORT_SYMBOL(acpi_get_hp_hw_control_from_firmware); |
| 454 | 468 | ||
diff --git a/drivers/pci/pcie/aer/aerdrv_acpi.c b/drivers/pci/pcie/aer/aerdrv_acpi.c index 30f581b8791f..6dd7b13e9808 100644 --- a/drivers/pci/pcie/aer/aerdrv_acpi.c +++ b/drivers/pci/pcie/aer/aerdrv_acpi.c | |||
| @@ -36,12 +36,7 @@ int aer_osc_setup(struct pcie_device *pciedev) | |||
| 36 | if (acpi_pci_disabled) | 36 | if (acpi_pci_disabled) |
| 37 | return -1; | 37 | return -1; |
| 38 | 38 | ||
| 39 | /* Find root host bridge */ | 39 | handle = acpi_find_root_bridge_handle(pdev); |
| 40 | while (pdev->bus->self) | ||
| 41 | pdev = pdev->bus->self; | ||
| 42 | handle = acpi_get_pci_rootbridge_handle( | ||
| 43 | pci_domain_nr(pdev->bus), pdev->bus->number); | ||
| 44 | |||
| 45 | if (handle) { | 40 | if (handle) { |
| 46 | pcie_osc_support_set(OSC_EXT_PCI_CONFIG_SUPPORT); | 41 | pcie_osc_support_set(OSC_EXT_PCI_CONFIG_SUPPORT); |
| 47 | status = pci_osc_control_set(handle, | 42 | status = pci_osc_control_set(handle, |
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index a04498d390c8..cce2f4cb1fbf 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
| @@ -383,6 +383,7 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child) | |||
| 383 | res->start = base; | 383 | res->start = base; |
| 384 | if (!res->end) | 384 | if (!res->end) |
| 385 | res->end = limit + 0xfff; | 385 | res->end = limit + 0xfff; |
| 386 | printk(KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n", pci_name(dev), res->start, res->end); | ||
| 386 | } | 387 | } |
| 387 | 388 | ||
| 388 | res = child->resource[1]; | 389 | res = child->resource[1]; |
| @@ -394,6 +395,7 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child) | |||
| 394 | res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM; | 395 | res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM; |
| 395 | res->start = base; | 396 | res->start = base; |
| 396 | res->end = limit + 0xfffff; | 397 | res->end = limit + 0xfffff; |
| 398 | printk(KERN_INFO "PCI: bridge %s 32bit mmio: [%llx, %llx]\n", pci_name(dev), res->start, res->end); | ||
| 397 | } | 399 | } |
| 398 | 400 | ||
| 399 | res = child->resource[2]; | 401 | res = child->resource[2]; |
| @@ -429,6 +431,7 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child) | |||
| 429 | res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH; | 431 | res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH; |
| 430 | res->start = base; | 432 | res->start = base; |
| 431 | res->end = limit + 0xfffff; | 433 | res->end = limit + 0xfffff; |
| 434 | printk(KERN_INFO "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n", pci_name(dev), (res->flags & PCI_PREF_RANGE_TYPE_64)?"64":"32",res->start, res->end); | ||
| 432 | } | 435 | } |
| 433 | } | 436 | } |
| 434 | 437 | ||
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index 827c0a520e2b..82634a2f1b1d 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c | |||
| @@ -530,6 +530,36 @@ void __ref pci_bus_assign_resources(struct pci_bus *bus) | |||
| 530 | } | 530 | } |
| 531 | EXPORT_SYMBOL(pci_bus_assign_resources); | 531 | EXPORT_SYMBOL(pci_bus_assign_resources); |
| 532 | 532 | ||
| 533 | static void pci_bus_dump_res(struct pci_bus *bus) | ||
| 534 | { | ||
| 535 | int i; | ||
| 536 | |||
| 537 | for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) { | ||
| 538 | struct resource *res = bus->resource[i]; | ||
| 539 | if (!res) | ||
| 540 | continue; | ||
| 541 | |||
| 542 | printk(KERN_INFO "bus: %02x index %x %s: [%llx, %llx]\n", bus->number, i, (res->flags & IORESOURCE_IO)? "io port":"mmio", res->start, res->end); | ||
| 543 | } | ||
| 544 | } | ||
| 545 | |||
| 546 | static void pci_bus_dump_resources(struct pci_bus *bus) | ||
| 547 | { | ||
| 548 | struct pci_bus *b; | ||
| 549 | struct pci_dev *dev; | ||
| 550 | |||
| 551 | |||
| 552 | pci_bus_dump_res(bus); | ||
| 553 | |||
| 554 | list_for_each_entry(dev, &bus->devices, bus_list) { | ||
| 555 | b = dev->subordinate; | ||
| 556 | if (!b) | ||
| 557 | continue; | ||
| 558 | |||
| 559 | pci_bus_dump_resources(b); | ||
| 560 | } | ||
| 561 | } | ||
| 562 | |||
| 533 | void __init | 563 | void __init |
| 534 | pci_assign_unassigned_resources(void) | 564 | pci_assign_unassigned_resources(void) |
| 535 | { | 565 | { |
| @@ -545,4 +575,9 @@ pci_assign_unassigned_resources(void) | |||
| 545 | pci_bus_assign_resources(bus); | 575 | pci_bus_assign_resources(bus); |
| 546 | pci_enable_bridges(bus); | 576 | pci_enable_bridges(bus); |
| 547 | } | 577 | } |
| 578 | |||
| 579 | /* dump the resource on buses */ | ||
| 580 | list_for_each_entry(bus, &pci_root_buses, node) { | ||
| 581 | pci_bus_dump_resources(bus); | ||
| 582 | } | ||
| 548 | } | 583 | } |
diff --git a/include/linux/pci-acpi.h b/include/linux/pci-acpi.h index 3ba25065fa96..8837928fbf33 100644 --- a/include/linux/pci-acpi.h +++ b/include/linux/pci-acpi.h | |||
| @@ -57,6 +57,15 @@ static inline acpi_status pcie_osc_support_set(u32 flags) | |||
| 57 | { | 57 | { |
| 58 | return __pci_osc_support_set(flags, PCI_EXPRESS_ROOT_HID_STRING); | 58 | return __pci_osc_support_set(flags, PCI_EXPRESS_ROOT_HID_STRING); |
| 59 | } | 59 | } |
| 60 | static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev) | ||
| 61 | { | ||
| 62 | /* Find root host bridge */ | ||
| 63 | while (pdev->bus->self) | ||
| 64 | pdev = pdev->bus->self; | ||
| 65 | |||
| 66 | return acpi_get_pci_rootbridge_handle(pci_domain_nr(pdev->bus), | ||
| 67 | pdev->bus->number); | ||
| 68 | } | ||
| 60 | #else | 69 | #else |
| 61 | #if !defined(AE_ERROR) | 70 | #if !defined(AE_ERROR) |
| 62 | typedef u32 acpi_status; | 71 | typedef u32 acpi_status; |
| @@ -66,6 +75,8 @@ static inline acpi_status pci_osc_control_set(acpi_handle handle, u32 flags) | |||
| 66 | {return AE_ERROR;} | 75 | {return AE_ERROR;} |
| 67 | static inline acpi_status pci_osc_support_set(u32 flags) {return AE_ERROR;} | 76 | static inline acpi_status pci_osc_support_set(u32 flags) {return AE_ERROR;} |
| 68 | static inline acpi_status pcie_osc_support_set(u32 flags) {return AE_ERROR;} | 77 | static inline acpi_status pcie_osc_support_set(u32 flags) {return AE_ERROR;} |
| 78 | static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev) | ||
| 79 | { return NULL; } | ||
| 69 | #endif | 80 | #endif |
| 70 | 81 | ||
| 71 | #endif /* _PCI_ACPI_H_ */ | 82 | #endif /* _PCI_ACPI_H_ */ |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 9ec2bcce8e83..f1624b396754 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -2428,6 +2428,9 @@ | |||
| 2428 | #define PCI_DEVICE_ID_INTEL_ICH10_3 0x3a1a | 2428 | #define PCI_DEVICE_ID_INTEL_ICH10_3 0x3a1a |
| 2429 | #define PCI_DEVICE_ID_INTEL_ICH10_4 0x3a30 | 2429 | #define PCI_DEVICE_ID_INTEL_ICH10_4 0x3a30 |
| 2430 | #define PCI_DEVICE_ID_INTEL_ICH10_5 0x3a60 | 2430 | #define PCI_DEVICE_ID_INTEL_ICH10_5 0x3a60 |
| 2431 | #define PCI_DEVICE_ID_INTEL_PCH_0 0x3b10 | ||
| 2432 | #define PCI_DEVICE_ID_INTEL_PCH_1 0x3b11 | ||
| 2433 | #define PCI_DEVICE_ID_INTEL_PCH_2 0x3b30 | ||
| 2431 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f | 2434 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f |
| 2432 | #define PCI_DEVICE_ID_INTEL_5100_16 0x65f0 | 2435 | #define PCI_DEVICE_ID_INTEL_5100_16 0x65f0 |
| 2433 | #define PCI_DEVICE_ID_INTEL_5100_21 0x65f5 | 2436 | #define PCI_DEVICE_ID_INTEL_5100_21 0x65f5 |
