]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/x86/pci/visws.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[mv-sheeva.git] / arch / x86 / pci / visws.c
index 42f4cb19facab8a47b70c85fcfd819cb086ade3b..bcead7a4687198baabb6c6e400312d943b4af7b8 100644 (file)
@@ -9,11 +9,10 @@
 #include <linux/init.h>
 
 #include <asm/setup.h>
+#include <asm/pci_x86.h>
 #include <asm/visws/cobalt.h>
 #include <asm/visws/lithium.h>
 
-#include "pci.h"
-
 static int pci_visws_enable_irq(struct pci_dev *dev) { return 0; }
 static void pci_visws_disable_irq(struct pci_dev *dev) { }
 
@@ -25,24 +24,6 @@ static void pci_visws_disable_irq(struct pci_dev *dev) { }
 
 unsigned int pci_bus0, pci_bus1;
 
-static inline u8 bridge_swizzle(u8 pin, u8 slot) 
-{
-       return (((pin - 1) + slot) % 4) + 1;
-}
-
-static u8 __init visws_swizzle(struct pci_dev *dev, u8 *pinp)
-{
-       u8 pin = *pinp;
-
-       while (dev->bus->self) {        /* Move up the chain of bridges. */
-               pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn));
-               dev = dev->bus->self;
-       }
-       *pinp = pin;
-
-       return PCI_SLOT(dev->devfn);
-}
-
 static int __init visws_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
        int irq, bus = dev->bus->number;
@@ -107,7 +88,7 @@ int __init pci_visws_init(void)
        raw_pci_ops = &pci_direct_conf1;
        pci_scan_bus_with_sysdata(pci_bus0);
        pci_scan_bus_with_sysdata(pci_bus1);
-       pci_fixup_irqs(visws_swizzle, visws_map_irq);
+       pci_fixup_irqs(pci_common_swizzle, visws_map_irq);
        pcibios_resource_survey();
        return 0;
 }