diff options
| -rw-r--r-- | arch/x86/pci/fixup.c | 3 | ||||
| -rw-r--r-- | arch/x86/pci/i386.c | 26 | ||||
| -rw-r--r-- | arch/x86/pci/irq.c | 106 | ||||
| -rw-r--r-- | arch/x86/pci/numaq_32.c | 5 |
4 files changed, 64 insertions, 76 deletions
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c index ff3a6a336342..4bdaa590375d 100644 --- a/arch/x86/pci/fixup.c +++ b/arch/x86/pci/fixup.c | |||
| @@ -23,7 +23,8 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d) | |||
| 23 | pci_read_config_byte(d, reg++, &busno); | 23 | pci_read_config_byte(d, reg++, &busno); |
| 24 | pci_read_config_byte(d, reg++, &suba); | 24 | pci_read_config_byte(d, reg++, &suba); |
| 25 | pci_read_config_byte(d, reg++, &subb); | 25 | pci_read_config_byte(d, reg++, &subb); |
| 26 | DBG("i450NX PXB %d: %02x/%02x/%02x\n", pxb, busno, suba, subb); | 26 | dev_dbg(&d->dev, "i450NX PXB %d: %02x/%02x/%02x\n", pxb, busno, |
| 27 | suba, subb); | ||
| 27 | if (busno) | 28 | if (busno) |
| 28 | pci_scan_bus_with_sysdata(busno); /* Bus A */ | 29 | pci_scan_bus_with_sysdata(busno); /* Bus A */ |
| 29 | if (suba < subb) | 30 | if (suba < subb) |
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c index a09505806b82..5807d1bc73f7 100644 --- a/arch/x86/pci/i386.c +++ b/arch/x86/pci/i386.c | |||
| @@ -128,10 +128,8 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list) | |||
| 128 | pr = pci_find_parent_resource(dev, r); | 128 | pr = pci_find_parent_resource(dev, r); |
| 129 | if (!r->start || !pr || | 129 | if (!r->start || !pr || |
| 130 | request_resource(pr, r) < 0) { | 130 | request_resource(pr, r) < 0) { |
| 131 | printk(KERN_ERR "PCI: Cannot allocate " | 131 | dev_err(&dev->dev, "BAR %d: can't " |
| 132 | "resource region %d " | 132 | "allocate resource\n", idx); |
| 133 | "of bridge %s\n", | ||
| 134 | idx, pci_name(dev)); | ||
| 135 | /* | 133 | /* |
| 136 | * Something is wrong with the region. | 134 | * Something is wrong with the region. |
| 137 | * Invalidate the resource to prevent | 135 | * Invalidate the resource to prevent |
| @@ -166,15 +164,15 @@ static void __init pcibios_allocate_resources(int pass) | |||
| 166 | else | 164 | else |
| 167 | disabled = !(command & PCI_COMMAND_MEMORY); | 165 | disabled = !(command & PCI_COMMAND_MEMORY); |
| 168 | if (pass == disabled) { | 166 | if (pass == disabled) { |
| 169 | DBG("PCI: Resource %08lx-%08lx " | 167 | dev_dbg(&dev->dev, "resource %#08llx-%#08llx " |
| 170 | "(f=%lx, d=%d, p=%d)\n", | 168 | "(f=%lx, d=%d, p=%d)\n", |
| 171 | r->start, r->end, r->flags, disabled, pass); | 169 | (unsigned long long) r->start, |
| 170 | (unsigned long long) r->end, | ||
| 171 | r->flags, disabled, pass); | ||
| 172 | pr = pci_find_parent_resource(dev, r); | 172 | pr = pci_find_parent_resource(dev, r); |
| 173 | if (!pr || request_resource(pr, r) < 0) { | 173 | if (!pr || request_resource(pr, r) < 0) { |
| 174 | printk(KERN_ERR "PCI: Cannot allocate " | 174 | dev_err(&dev->dev, "BAR %d: can't " |
| 175 | "resource region %d " | 175 | "allocate resource\n", idx); |
| 176 | "of device %s\n", | ||
| 177 | idx, pci_name(dev)); | ||
| 178 | /* We'll assign a new address later */ | 176 | /* We'll assign a new address later */ |
| 179 | r->end -= r->start; | 177 | r->end -= r->start; |
| 180 | r->start = 0; | 178 | r->start = 0; |
| @@ -187,8 +185,7 @@ static void __init pcibios_allocate_resources(int pass) | |||
| 187 | /* Turn the ROM off, leave the resource region, | 185 | /* Turn the ROM off, leave the resource region, |
| 188 | * but keep it unregistered. */ | 186 | * but keep it unregistered. */ |
| 189 | u32 reg; | 187 | u32 reg; |
| 190 | DBG("PCI: Switching off ROM of %s\n", | 188 | dev_dbg(&dev->dev, "disabling ROM\n"); |
| 191 | pci_name(dev)); | ||
| 192 | r->flags &= ~IORESOURCE_ROM_ENABLE; | 189 | r->flags &= ~IORESOURCE_ROM_ENABLE; |
| 193 | pci_read_config_dword(dev, | 190 | pci_read_config_dword(dev, |
| 194 | dev->rom_base_reg, ®); | 191 | dev->rom_base_reg, ®); |
| @@ -257,8 +254,7 @@ void pcibios_set_master(struct pci_dev *dev) | |||
| 257 | lat = pcibios_max_latency; | 254 | lat = pcibios_max_latency; |
| 258 | else | 255 | else |
| 259 | return; | 256 | return; |
| 260 | printk(KERN_DEBUG "PCI: Setting latency timer of device %s to %d\n", | 257 | dev_printk(KERN_DEBUG, &dev->dev, "setting latency timer to %d\n", lat); |
| 261 | pci_name(dev), lat); | ||
| 262 | pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); | 258 | pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); |
| 263 | } | 259 | } |
| 264 | 260 | ||
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c index 6a06a2eb0597..fec0123b33a9 100644 --- a/arch/x86/pci/irq.c +++ b/arch/x86/pci/irq.c | |||
| @@ -436,7 +436,7 @@ static int pirq_vlsi_get(struct pci_dev *router, struct pci_dev *dev, int pirq) | |||
| 436 | { | 436 | { |
| 437 | WARN_ON_ONCE(pirq >= 9); | 437 | WARN_ON_ONCE(pirq >= 9); |
| 438 | if (pirq > 8) { | 438 | if (pirq > 8) { |
| 439 | printk(KERN_INFO "VLSI router pirq escape (%d)\n", pirq); | 439 | dev_info(&dev->dev, "VLSI router PIRQ escape (%d)\n", pirq); |
| 440 | return 0; | 440 | return 0; |
| 441 | } | 441 | } |
| 442 | return read_config_nybble(router, 0x74, pirq-1); | 442 | return read_config_nybble(router, 0x74, pirq-1); |
| @@ -446,7 +446,7 @@ static int pirq_vlsi_set(struct pci_dev *router, struct pci_dev *dev, int pirq, | |||
| 446 | { | 446 | { |
| 447 | WARN_ON_ONCE(pirq >= 9); | 447 | WARN_ON_ONCE(pirq >= 9); |
| 448 | if (pirq > 8) { | 448 | if (pirq > 8) { |
| 449 | printk(KERN_INFO "VLSI router pirq escape (%d)\n", pirq); | 449 | dev_info(&dev->dev, "VLSI router PIRQ escape (%d)\n", pirq); |
| 450 | return 0; | 450 | return 0; |
| 451 | } | 451 | } |
| 452 | write_config_nybble(router, 0x74, pirq-1, irq); | 452 | write_config_nybble(router, 0x74, pirq-1, irq); |
| @@ -492,15 +492,17 @@ static int pirq_amd756_get(struct pci_dev *router, struct pci_dev *dev, int pirq | |||
| 492 | irq = 0; | 492 | irq = 0; |
| 493 | if (pirq <= 4) | 493 | if (pirq <= 4) |
| 494 | irq = read_config_nybble(router, 0x56, pirq - 1); | 494 | irq = read_config_nybble(router, 0x56, pirq - 1); |
| 495 | printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d get irq : %2d\n", | 495 | dev_info(&dev->dev, |
| 496 | dev->vendor, dev->device, pirq, irq); | 496 | "AMD756: dev [%04x/%04x], router PIRQ %d get IRQ %d\n", |
| 497 | dev->vendor, dev->device, pirq, irq); | ||
| 497 | return irq; | 498 | return irq; |
| 498 | } | 499 | } |
| 499 | 500 | ||
| 500 | static int pirq_amd756_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) | 501 | static int pirq_amd756_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) |
| 501 | { | 502 | { |
| 502 | printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d SET irq : %2d\n", | 503 | dev_info(&dev->dev, |
| 503 | dev->vendor, dev->device, pirq, irq); | 504 | "AMD756: dev [%04x/%04x], router PIRQ %d set IRQ %d\n", |
| 505 | dev->vendor, dev->device, pirq, irq); | ||
| 504 | if (pirq <= 4) | 506 | if (pirq <= 4) |
| 505 | write_config_nybble(router, 0x56, pirq - 1, irq); | 507 | write_config_nybble(router, 0x56, pirq - 1, irq); |
| 506 | return 1; | 508 | return 1; |
| @@ -730,7 +732,6 @@ static __init int ali_router_probe(struct irq_router *r, struct pci_dev *router, | |||
| 730 | switch (device) { | 732 | switch (device) { |
| 731 | case PCI_DEVICE_ID_AL_M1533: | 733 | case PCI_DEVICE_ID_AL_M1533: |
| 732 | case PCI_DEVICE_ID_AL_M1563: | 734 | case PCI_DEVICE_ID_AL_M1563: |
| 733 | printk(KERN_DEBUG "PCI: Using ALI IRQ Router\n"); | ||
| 734 | r->name = "ALI"; | 735 | r->name = "ALI"; |
| 735 | r->get = pirq_ali_get; | 736 | r->get = pirq_ali_get; |
| 736 | r->set = pirq_ali_set; | 737 | r->set = pirq_ali_set; |
| @@ -840,11 +841,9 @@ static void __init pirq_find_router(struct irq_router *r) | |||
| 840 | h->probe(r, pirq_router_dev, pirq_router_dev->device)) | 841 | h->probe(r, pirq_router_dev, pirq_router_dev->device)) |
| 841 | break; | 842 | break; |
| 842 | } | 843 | } |
| 843 | printk(KERN_INFO "PCI: Using IRQ router %s [%04x/%04x] at %s\n", | 844 | dev_info(&pirq_router_dev->dev, "%s IRQ router [%04x/%04x]\n", |
| 844 | pirq_router.name, | 845 | pirq_router.name, |
| 845 | pirq_router_dev->vendor, | 846 | pirq_router_dev->vendor, pirq_router_dev->device); |
| 846 | pirq_router_dev->device, | ||
| 847 | pci_name(pirq_router_dev)); | ||
| 848 | 847 | ||
| 849 | /* The device remains referenced for the kernel lifetime */ | 848 | /* The device remains referenced for the kernel lifetime */ |
| 850 | } | 849 | } |
| @@ -877,7 +876,7 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign) | |||
| 877 | /* Find IRQ pin */ | 876 | /* Find IRQ pin */ |
| 878 | pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); | 877 | pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); |
| 879 | if (!pin) { | 878 | if (!pin) { |
| 880 | DBG(KERN_DEBUG " -> no interrupt pin\n"); | 879 | dev_dbg(&dev->dev, "no interrupt pin\n"); |
| 881 | return 0; | 880 | return 0; |
| 882 | } | 881 | } |
| 883 | pin = pin - 1; | 882 | pin = pin - 1; |
| @@ -887,20 +886,20 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign) | |||
| 887 | if (!pirq_table) | 886 | if (!pirq_table) |
| 888 | return 0; | 887 | return 0; |
| 889 | 888 | ||
| 890 | DBG(KERN_DEBUG "IRQ for %s[%c]", pci_name(dev), 'A' + pin); | ||
| 891 | info = pirq_get_info(dev); | 889 | info = pirq_get_info(dev); |
| 892 | if (!info) { | 890 | if (!info) { |
| 893 | DBG(" -> not found in routing table\n" KERN_DEBUG); | 891 | dev_dbg(&dev->dev, "PCI INT %c not found in routing table\n", |
| 892 | 'A' + pin); | ||
| 894 | return 0; | 893 | return 0; |
| 895 | } | 894 | } |
| 896 | pirq = info->irq[pin].link; | 895 | pirq = info->irq[pin].link; |
| 897 | mask = info->irq[pin].bitmap; | 896 | mask = info->irq[pin].bitmap; |
| 898 | if (!pirq) { | 897 | if (!pirq) { |
| 899 | DBG(" -> not routed\n" KERN_DEBUG); | 898 | dev_dbg(&dev->dev, "PCI INT %c not routed\n", 'A' + pin); |
| 900 | return 0; | 899 | return 0; |
| 901 | } | 900 | } |
| 902 | DBG(" -> PIRQ %02x, mask %04x, excl %04x", pirq, mask, | 901 | dev_dbg(&dev->dev, "PCI INT %c -> PIRQ %02x, mask %04x, excl %04x", |
| 903 | pirq_table->exclusive_irqs); | 902 | 'A' + pin, pirq, mask, pirq_table->exclusive_irqs); |
| 904 | mask &= pcibios_irq_mask; | 903 | mask &= pcibios_irq_mask; |
| 905 | 904 | ||
| 906 | /* Work around broken HP Pavilion Notebooks which assign USB to | 905 | /* Work around broken HP Pavilion Notebooks which assign USB to |
| @@ -930,10 +929,8 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign) | |||
| 930 | if (pci_probe & PCI_USE_PIRQ_MASK) | 929 | if (pci_probe & PCI_USE_PIRQ_MASK) |
| 931 | newirq = 0; | 930 | newirq = 0; |
| 932 | else | 931 | else |
| 933 | printk("\n" KERN_WARNING | 932 | dev_warn(&dev->dev, "IRQ %d doesn't match PIRQ mask " |
| 934 | "PCI: IRQ %i for device %s doesn't match PIRQ mask - try pci=usepirqmask\n" | 933 | "%#x; try pci=usepirqmask\n", newirq, mask); |
| 935 | KERN_DEBUG, newirq, | ||
| 936 | pci_name(dev)); | ||
| 937 | } | 934 | } |
| 938 | if (!newirq && assign) { | 935 | if (!newirq && assign) { |
| 939 | for (i = 0; i < 16; i++) { | 936 | for (i = 0; i < 16; i++) { |
| @@ -944,39 +941,35 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign) | |||
| 944 | newirq = i; | 941 | newirq = i; |
| 945 | } | 942 | } |
| 946 | } | 943 | } |
| 947 | DBG(" -> newirq=%d", newirq); | 944 | dev_dbg(&dev->dev, "PCI INT %c -> newirq %d", 'A' + pin, newirq); |
| 948 | 945 | ||
| 949 | /* Check if it is hardcoded */ | 946 | /* Check if it is hardcoded */ |
| 950 | if ((pirq & 0xf0) == 0xf0) { | 947 | if ((pirq & 0xf0) == 0xf0) { |
| 951 | irq = pirq & 0xf; | 948 | irq = pirq & 0xf; |
| 952 | DBG(" -> hardcoded IRQ %d\n", irq); | 949 | msg = "hardcoded"; |
| 953 | msg = "Hardcoded"; | ||
| 954 | } else if (r->get && (irq = r->get(pirq_router_dev, dev, pirq)) && \ | 950 | } else if (r->get && (irq = r->get(pirq_router_dev, dev, pirq)) && \ |
| 955 | ((!(pci_probe & PCI_USE_PIRQ_MASK)) || ((1 << irq) & mask))) { | 951 | ((!(pci_probe & PCI_USE_PIRQ_MASK)) || ((1 << irq) & mask))) { |
| 956 | DBG(" -> got IRQ %d\n", irq); | 952 | msg = "found"; |
| 957 | msg = "Found"; | ||
| 958 | eisa_set_level_irq(irq); | 953 | eisa_set_level_irq(irq); |
| 959 | } else if (newirq && r->set && | 954 | } else if (newirq && r->set && |
| 960 | (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) { | 955 | (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) { |
| 961 | DBG(" -> assigning IRQ %d", newirq); | ||
| 962 | if (r->set(pirq_router_dev, dev, pirq, newirq)) { | 956 | if (r->set(pirq_router_dev, dev, pirq, newirq)) { |
| 963 | eisa_set_level_irq(newirq); | 957 | eisa_set_level_irq(newirq); |
| 964 | DBG(" ... OK\n"); | 958 | msg = "assigned"; |
| 965 | msg = "Assigned"; | ||
| 966 | irq = newirq; | 959 | irq = newirq; |
| 967 | } | 960 | } |
| 968 | } | 961 | } |
| 969 | 962 | ||
| 970 | if (!irq) { | 963 | if (!irq) { |
| 971 | DBG(" ... failed\n"); | ||
| 972 | if (newirq && mask == (1 << newirq)) { | 964 | if (newirq && mask == (1 << newirq)) { |
| 973 | msg = "Guessed"; | 965 | msg = "guessed"; |
| 974 | irq = newirq; | 966 | irq = newirq; |
| 975 | } else | 967 | } else { |
| 968 | dev_dbg(&dev->dev, "can't route interrupt\n"); | ||
| 976 | return 0; | 969 | return 0; |
| 970 | } | ||
| 977 | } | 971 | } |
| 978 | printk(KERN_INFO "PCI: %s IRQ %d for device %s\n", msg, irq, | 972 | dev_info(&dev->dev, "%s PCI INT %c -> IRQ %d\n", msg, 'A' + pin, irq); |
| 979 | pci_name(dev)); | ||
| 980 | 973 | ||
| 981 | /* Update IRQ for all devices with the same pirq value */ | 974 | /* Update IRQ for all devices with the same pirq value */ |
| 982 | while ((dev2 = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev2)) != NULL) { | 975 | while ((dev2 = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev2)) != NULL) { |
| @@ -996,17 +989,17 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign) | |||
| 996 | (!(pci_probe & PCI_USE_PIRQ_MASK) || \ | 989 | (!(pci_probe & PCI_USE_PIRQ_MASK) || \ |
| 997 | ((1 << dev2->irq) & mask))) { | 990 | ((1 << dev2->irq) & mask))) { |
| 998 | #ifndef CONFIG_PCI_MSI | 991 | #ifndef CONFIG_PCI_MSI |
| 999 | printk(KERN_INFO "IRQ routing conflict for %s, have irq %d, want irq %d\n", | 992 | dev_info(&dev2->dev, "IRQ routing conflict: " |
| 1000 | pci_name(dev2), dev2->irq, irq); | 993 | "have IRQ %d, want IRQ %d\n", |
| 994 | dev2->irq, irq); | ||
| 1001 | #endif | 995 | #endif |
| 1002 | continue; | 996 | continue; |
| 1003 | } | 997 | } |
| 1004 | dev2->irq = irq; | 998 | dev2->irq = irq; |
| 1005 | pirq_penalty[irq]++; | 999 | pirq_penalty[irq]++; |
| 1006 | if (dev != dev2) | 1000 | if (dev != dev2) |
| 1007 | printk(KERN_INFO | 1001 | dev_info(&dev->dev, "sharing IRQ %d with %s\n", |
| 1008 | "PCI: Sharing IRQ %d with %s\n", | 1002 | irq, pci_name(dev2)); |
| 1009 | irq, pci_name(dev2)); | ||
| 1010 | } | 1003 | } |
| 1011 | } | 1004 | } |
| 1012 | return 1; | 1005 | return 1; |
| @@ -1025,8 +1018,7 @@ static void __init pcibios_fixup_irqs(void) | |||
| 1025 | * already in use. | 1018 | * already in use. |
| 1026 | */ | 1019 | */ |
| 1027 | if (dev->irq >= 16) { | 1020 | if (dev->irq >= 16) { |
| 1028 | DBG(KERN_DEBUG "%s: ignoring bogus IRQ %d\n", | 1021 | dev_dbg(&dev->dev, "ignoring bogus IRQ %d\n", dev->irq); |
| 1029 | pci_name(dev), dev->irq); | ||
| 1030 | dev->irq = 0; | 1022 | dev->irq = 0; |
| 1031 | } | 1023 | } |
| 1032 | /* | 1024 | /* |
| @@ -1070,12 +1062,12 @@ static void __init pcibios_fixup_irqs(void) | |||
| 1070 | irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, | 1062 | irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, |
| 1071 | PCI_SLOT(bridge->devfn), pin); | 1063 | PCI_SLOT(bridge->devfn), pin); |
| 1072 | if (irq >= 0) | 1064 | if (irq >= 0) |
| 1073 | printk(KERN_WARNING "PCI: using PPB %s[%c] to get irq %d\n", | 1065 | dev_warn(&dev->dev, "using bridge %s INT %c to get IRQ %d\n", |
| 1074 | pci_name(bridge), 'A' + pin, irq); | 1066 | pci_name(bridge), |
| 1067 | 'A' + pin, irq); | ||
| 1075 | } | 1068 | } |
| 1076 | if (irq >= 0) { | 1069 | if (irq >= 0) { |
| 1077 | printk(KERN_INFO "PCI->APIC IRQ transform: %s[%c] -> IRQ %d\n", | 1070 | dev_info(&dev->dev, "PCI->APIC IRQ transform: INT %c -> IRQ %d\n", 'A' + pin, irq); |
| 1078 | pci_name(dev), 'A' + pin, irq); | ||
| 1079 | dev->irq = irq; | 1071 | dev->irq = irq; |
| 1080 | } | 1072 | } |
| 1081 | } | 1073 | } |
| @@ -1231,25 +1223,24 @@ static int pirq_enable_irq(struct pci_dev *dev) | |||
| 1231 | irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, | 1223 | irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, |
| 1232 | PCI_SLOT(bridge->devfn), pin); | 1224 | PCI_SLOT(bridge->devfn), pin); |
| 1233 | if (irq >= 0) | 1225 | if (irq >= 0) |
| 1234 | printk(KERN_WARNING | 1226 | dev_warn(&dev->dev, "using bridge %s " |
| 1235 | "PCI: using PPB %s[%c] to get irq %d\n", | 1227 | "INT %c to get IRQ %d\n", |
| 1236 | pci_name(bridge), | 1228 | pci_name(bridge), 'A' + pin, |
| 1237 | 'A' + pin, irq); | 1229 | irq); |
| 1238 | dev = bridge; | 1230 | dev = bridge; |
| 1239 | } | 1231 | } |
| 1240 | dev = temp_dev; | 1232 | dev = temp_dev; |
| 1241 | if (irq >= 0) { | 1233 | if (irq >= 0) { |
| 1242 | printk(KERN_INFO | 1234 | dev_info(&dev->dev, "PCI->APIC IRQ transform: " |
| 1243 | "PCI->APIC IRQ transform: %s[%c] -> IRQ %d\n", | 1235 | "INT %c -> IRQ %d\n", 'A' + pin, irq); |
| 1244 | pci_name(dev), 'A' + pin, irq); | ||
| 1245 | dev->irq = irq; | 1236 | dev->irq = irq; |
| 1246 | return 0; | 1237 | return 0; |
| 1247 | } else | 1238 | } else |
| 1248 | msg = " Probably buggy MP table."; | 1239 | msg = "; probably buggy MP table"; |
| 1249 | } else if (pci_probe & PCI_BIOS_IRQ_SCAN) | 1240 | } else if (pci_probe & PCI_BIOS_IRQ_SCAN) |
| 1250 | msg = ""; | 1241 | msg = ""; |
| 1251 | else | 1242 | else |
| 1252 | msg = " Please try using pci=biosirq."; | 1243 | msg = "; please try using pci=biosirq"; |
| 1253 | 1244 | ||
| 1254 | /* | 1245 | /* |
| 1255 | * With IDE legacy devices the IRQ lookup failure is not | 1246 | * With IDE legacy devices the IRQ lookup failure is not |
| @@ -1259,9 +1250,8 @@ static int pirq_enable_irq(struct pci_dev *dev) | |||
| 1259 | !(dev->class & 0x5)) | 1250 | !(dev->class & 0x5)) |
| 1260 | return 0; | 1251 | return 0; |
| 1261 | 1252 | ||
| 1262 | printk(KERN_WARNING | 1253 | dev_warn(&dev->dev, "can't find IRQ for PCI INT %c%s\n", |
| 1263 | "PCI: No IRQ known for interrupt pin %c of device %s.%s\n", | 1254 | 'A' + pin, msg); |
| 1264 | 'A' + pin, pci_name(dev), msg); | ||
| 1265 | } | 1255 | } |
| 1266 | return 0; | 1256 | return 0; |
| 1267 | } | 1257 | } |
diff --git a/arch/x86/pci/numaq_32.c b/arch/x86/pci/numaq_32.c index f4b16dc11dad..1177845d3186 100644 --- a/arch/x86/pci/numaq_32.c +++ b/arch/x86/pci/numaq_32.c | |||
| @@ -131,13 +131,14 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d) | |||
| 131 | u8 busno, suba, subb; | 131 | u8 busno, suba, subb; |
| 132 | int quad = BUS2QUAD(d->bus->number); | 132 | int quad = BUS2QUAD(d->bus->number); |
| 133 | 133 | ||
| 134 | printk("PCI: Searching for i450NX host bridges on %s\n", pci_name(d)); | 134 | dev_info(&d->dev, "searching for i450NX host bridges\n"); |
| 135 | reg = 0xd0; | 135 | reg = 0xd0; |
| 136 | for(pxb=0; pxb<2; pxb++) { | 136 | for(pxb=0; pxb<2; pxb++) { |
| 137 | pci_read_config_byte(d, reg++, &busno); | 137 | pci_read_config_byte(d, reg++, &busno); |
| 138 | pci_read_config_byte(d, reg++, &suba); | 138 | pci_read_config_byte(d, reg++, &suba); |
| 139 | pci_read_config_byte(d, reg++, &subb); | 139 | pci_read_config_byte(d, reg++, &subb); |
| 140 | DBG("i450NX PXB %d: %02x/%02x/%02x\n", pxb, busno, suba, subb); | 140 | dev_dbg(&d->dev, "i450NX PXB %d: %02x/%02x/%02x\n", |
| 141 | pxb, busno, suba, subb); | ||
| 141 | if (busno) { | 142 | if (busno) { |
| 142 | /* Bus A */ | 143 | /* Bus A */ |
| 143 | pci_scan_bus_with_sysdata(QUADLOCAL2BUS(quad, busno)); | 144 | pci_scan_bus_with_sysdata(QUADLOCAL2BUS(quad, busno)); |
