[POWERPC] Remove ppc_md.pci_map_irq & ppc_swizzle for ARCH=powerpc
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sat, 11 Nov 2006 06:24:52 +0000 (17:24 +1100)
committerPaul Mackerras <paulus@samba.org>
Mon, 4 Dec 2006 05:00:14 +0000 (16:00 +1100)
These were inherited from ARCH=ppc, but are not needed since parsing of interrupts
should be done via the of_* functions (who can do swizzling). If we ever need to
do non-standard swizzling on bridges without a device-node, then we might add
back a slightly different version of ppc_md.pci_swizzle but for now, that is not
the case.

I removed the couple of calls for these in 83xx. If that breaks something, then
there is a problem with the device-tree on these.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/pci_32.c
arch/powerpc/platforms/83xx/mpc832x_mds.c
arch/powerpc/platforms/83xx/mpc8360e_pb.c
include/asm-powerpc/machdep.h

index 853ecef..d32cd50 100644 (file)
@@ -1283,10 +1283,6 @@ pcibios_init(void)
        if (pci_assign_all_buses && have_of)
                pcibios_make_OF_bus_map();
 
-       /* Do machine dependent PCI interrupt routing */
-       if (ppc_md.pci_swizzle && ppc_md.pci_map_irq)
-               pci_fixup_irqs(ppc_md.pci_swizzle, ppc_md.pci_map_irq);
-
        /* Call machine dependent fixup */
        if (ppc_md.pcibios_fixup)
                ppc_md.pcibios_fixup();
@@ -1309,25 +1305,6 @@ pcibios_init(void)
 
 subsys_initcall(pcibios_init);
 
-unsigned char __init
-common_swizzle(struct pci_dev *dev, unsigned char *pinp)
-{
-       struct pci_controller *hose = dev->sysdata;
-
-       if (dev->bus->number != hose->first_busno) {
-               u8 pin = *pinp;
-               do {
-                       pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn));
-                       /* Move up the chain of bridges. */
-                       dev = dev->bus->self;
-               } while (dev->bus->self);
-               *pinp = pin;
-
-               /* The slot is the idsel of the last bridge. */
-       }
-       return PCI_SLOT(dev->devfn);
-}
-
 unsigned long resource_fixup(struct pci_dev * dev, struct resource * res,
                             unsigned long start, unsigned long size)
 {
index a43ac71..f58c978 100644 (file)
@@ -97,8 +97,6 @@ static void __init mpc832x_sys_setup_arch(void)
 #ifdef CONFIG_PCI
        for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
                add_bridge(np);
-
-       ppc_md.pci_swizzle = common_swizzle;
        ppc_md.pci_exclude_device = mpc83xx_exclude_device;
 #endif
 
index 1a523c8..7bfd47a 100644 (file)
@@ -102,8 +102,6 @@ static void __init mpc8360_sys_setup_arch(void)
 #ifdef CONFIG_PCI
        for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
                add_bridge(np);
-
-       ppc_md.pci_swizzle = common_swizzle;
        ppc_md.pci_exclude_device = mpc83xx_exclude_device;
 #endif
 
index 3810f13..162205f 100644 (file)
@@ -199,10 +199,6 @@ struct machdep_calls {
         * Returns 0 to allow assignment/enabling of the device. */
        int  (*pcibios_enable_device_hook)(struct pci_dev *, int initial);
 
-       /* For interrupt routing */
-       unsigned char (*pci_swizzle)(struct pci_dev *, unsigned char *);
-       int (*pci_map_irq)(struct pci_dev *, unsigned char, unsigned char);
-
        /* Called in indirect_* to avoid touching devices */
        int (*pci_exclude_device)(unsigned char, unsigned char);