Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes...
[safe/jmp/linux-2.6] / arch / x86 / pci / irq.c
index ee524ca..0908fca 100644 (file)
@@ -136,9 +136,11 @@ static void __init pirq_peer_trick(void)
                busmap[e->bus] = 1;
        }
        for(i = 1; i < 256; i++) {
+               int node;
                if (!busmap[i] || pci_find_bus(0, i))
                        continue;
-               if (pci_scan_bus_with_sysdata(i))
+               node = get_mp_bus_to_node(i);
+               if (pci_scan_bus_on_node(i, &pci_root_ops, node))
                        printk(KERN_INFO "PCI: Discovered primary peer "
                               "bus %02x [IRQ]\n", i);
        }
@@ -200,7 +202,7 @@ static int pirq_ali_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
 {
        static const unsigned char irqmap[16] = { 0, 9, 3, 10, 4, 5, 7, 6, 1, 11, 0, 12, 0, 14, 0, 15 };
 
-       WARN_ON_ONCE(pirq >= 16);
+       WARN_ON_ONCE(pirq > 16);
        return irqmap[read_config_nybble(router, 0x48, pirq-1)];
 }
 
@@ -209,7 +211,7 @@ static int pirq_ali_set(struct pci_dev *router, struct pci_dev *dev, int pirq, i
        static const unsigned char irqmap[16] = { 0, 8, 0, 2, 4, 5, 7, 6, 0, 1, 3, 9, 11, 0, 13, 15 };
        unsigned int val = irqmap[irq];
 
-       WARN_ON_ONCE(pirq >= 16);
+       WARN_ON_ONCE(pirq > 16);
        if (val) {
                write_config_nybble(router, 0x48, pirq-1, val);
                return 1;
@@ -260,7 +262,7 @@ static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq
 {
        static const unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 };
 
-       WARN_ON_ONCE(pirq >= 5);
+       WARN_ON_ONCE(pirq > 5);
        return read_config_nybble(router, 0x55, pirqmap[pirq-1]);
 }
 
@@ -268,7 +270,7 @@ static int pirq_via586_set(struct pci_dev *router, struct pci_dev *dev, int pirq
 {
        static const unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 };
 
-       WARN_ON_ONCE(pirq >= 5);
+       WARN_ON_ONCE(pirq > 5);
        write_config_nybble(router, 0x55, pirqmap[pirq-1], irq);
        return 1;
 }
@@ -282,7 +284,7 @@ static int pirq_ite_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
 {
        static const unsigned char pirqmap[4] = { 1, 0, 2, 3 };
 
-       WARN_ON_ONCE(pirq >= 4);
+       WARN_ON_ONCE(pirq > 4);
        return read_config_nybble(router,0x43, pirqmap[pirq-1]);
 }
 
@@ -290,7 +292,7 @@ static int pirq_ite_set(struct pci_dev *router, struct pci_dev *dev, int pirq, i
 {
        static const unsigned char pirqmap[4] = { 1, 0, 2, 3 };
 
-       WARN_ON_ONCE(pirq >= 4);
+       WARN_ON_ONCE(pirq > 4);
        write_config_nybble(router, 0x43, pirqmap[pirq-1], irq);
        return 1;
 }
@@ -461,14 +463,14 @@ static int pirq_vlsi_set(struct pci_dev *router, struct pci_dev *dev, int pirq,
  */
 static int pirq_serverworks_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
 {
-       outb_p(pirq, 0xc00);
+       outb(pirq, 0xc00);
        return inb(0xc01) & 0xf;
 }
 
 static int pirq_serverworks_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
 {
-       outb_p(pirq, 0xc00);
-       outb_p(irq, 0xc01);
+       outb(pirq, 0xc00);
+       outb(irq, 0xc01);
        return 1;
 }
 
@@ -583,6 +585,10 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
                case PCI_DEVICE_ID_INTEL_ICH9_4:
                case PCI_DEVICE_ID_INTEL_ICH9_5:
                case PCI_DEVICE_ID_INTEL_TOLAPAI_0:
+               case PCI_DEVICE_ID_INTEL_ICH10_0:
+               case PCI_DEVICE_ID_INTEL_ICH10_1:
+               case PCI_DEVICE_ID_INTEL_ICH10_2:
+               case PCI_DEVICE_ID_INTEL_ICH10_3:
                        r->name = "PIIX/ICH";
                        r->get = pirq_piix_get;
                        r->set = pirq_piix_set;